Skip to content

chore(quest): plan CBC and rustls security checks - #486

Merged
moq-bot[bot] merged 3 commits into
mainfrom
quest-plan/security-concerns
Nov 7, 2026
Merged

moq-bot[bot] merged 3 commits into
mainfrom
quest-plan/security-concerns

Conversation

@kixelated

@kixelated kixelated commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

A targeted review raised two unconfirmed concerns: CBC padding failures could become an oracle in a consumer, and rind-rustls uses unwrap for key and IV lengths. Neither has a demonstrated reachable security defect.

Approach

  • Add separate m3 quests to trace current CBC consumers and rustls provider input provenance.
  • Require reproduction before any fix; close each quest with evidence if the concern is unreachable.
  • Clarify m3's goal to include work deferred by priority, as its existing assurance quests already do.

Impact

  • No public API or wire change.

Alternatives

  • Harden both APIs without proving reachability: rejected because CBC's unauthenticated behavior was deliberate in moq-dev/rind#381, and the rustls trait contract still needs investigation.
  • Fold these into the coverage audit or timing tests: rejected because those track primitive checks, not consumer misuse or provider input provenance.

Decisions

  • ✅ Investigate both concerns and fix only reproduced defects (rejected: harden both APIs now; investigate only one).
  • ✅ Put both quests in m3 (rejected: m1; split milestones).
  • ✅ Consider broader rind-specific API hardening after the investigations, if their evidence warrants it.

Follow-ups

  • Revisit API hardening only if either investigation identifies a rind-specific risk.

Models

  • Size: S
  • Implementer: Codex, gpt-6-sol, medium effort

Review

mechanical fix by codex, gpt-6.1-sol, medium effort: Merged base and redirected two completed coverage-audit links to TESTING.md; ran git diff --check and just ci base (bench tests, quest check, shellcheck, nixfmt). (head 0170b71)

Rewritten by quest review after each round.

  • Reviewer: Codex, gpt-6.1-sol, medium effort
  • Session: 01a1b73c-6d53-70a2-95ce-6eab53268139, round 1
  • Head: f3c7286
  • Base: origin/main at 165545e
  • Score: 10/10, The specified diff adds two clearly scoped security-investigation quests and updates their milestone index, with no executable changes or actionable defects under the repository's review rules.
  • Findings: none

(Written by GPT-6 Sol with medium effort)

Co-Authored-By: Codex <codex@openai.com>
@kixelated
kixelated marked this pull request as ready for review November 7, 2026 18:20
@pullfrog

pullfrog Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Your OpenCode Go account is out of credit. Top it up, then re-trigger Pullfrog.

OpenCode Go's response
provider error: Insufficient account funds

Top up OpenCode Go →

Pullfrog  | Rerun failed job ➔ | View workflow run | via Pullfrog | Using glm-5.3

@coderabbitai

coderabbitai Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: be9c26ab-23a6-4ab0-8536-c016f805b5e6
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@kixelated
kixelated added this pull request to the merge queue Nov 7, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Nov 7, 2026
@moq-bot

moq-bot Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

quest land watch: the merge queue removed this pull request at f3c7286 because its merge_group build failed (failed_checks).

The land fixer works on it in the background, and the watcher re-enqueues it at the back of the queue once it is fixed or judged flaky, or hands it back here with what it needs.

Queue / Queue build / Build (job) failure at step Check and test the merge group:

…/github-runner-work/rind/rind/.git/modules/thirdparty/cavp/config	remote.origin.url
Entering 'thirdparty/cctv'
file:/var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/cctv/config	remote.origin.url
Entering 'thirdparty/wycheproof'
file:/var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/wycheproof/config	remote.origin.url
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --file /var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/cavp/config --name-only --get-regexp ^includeIf\.gitdir:
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --file /var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/cctv/config --name-only --get-regexp ^includeIf\.gitdir:
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --file /var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/wycheproof/config --name-only --get-regexp ^includeIf\.gitdir:
Removing credentials config '/var/cache/github-runner-work/_temp/git-credentials-1ae452da-6ac3-4afa-91b3-7a9d2a63f0bf.config'
##[endgroup]
Prepare all required actions
##[group]Run ./.github/actions/vectors
env:
  BASE: 42d67a01d23ba158f25686fdf52c3673b865cddf
##[endgroup]
##[start-action display=Run git submodule update --init --depth 1 thirdparty/cavp thirdparty/cctv thirdparty/wycheproof;id=__self.__run]
##[group]Run git submodule update --init --depth 1 thirdparty/cavp thirdparty/cctv thirdparty/wycheproof
�[36;1mgit submodule update --init --depth 1 thirdparty/cavp thirdparty/cctv thirdparty/wycheproof�[0m
shell: /nix/store/1mv3qz005gkbalxfghk4y3s8ayv4d2dl-bash-interactive-5.3p15/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  BASE: 42d67a01d23ba158f25686fdf52c3673b865cddf
##[endgroup]
##[end-action id=__self.__run;outcome=success;conclusion=success;duration_ms=48]
##[group]Run nix develop --command quest gate just ci "$BASE"
�[36;1mnix develop --command quest gate just ci "$BASE"�[0m
shell: /nix/store/1mv3qz005gkbalxfghk4y3s8ayv4d2dl-bash-interactive-5.3p15/bin/bash -e {0}
env:
  BASE: 42d67a01d23ba158f25686fdf52c3673b865cddf
##[endgroup]
CI_STRICT=1 sh/dispatch.sh ci "$BASE"
changed: base 42d67a01d23ba158f25686fdf52c3673b865cddf
==> ci bench
..................
----------------------------------------------------------------------
Ran 18 tests in 0.096s

OK
==> ci quest
quest: quest/m3/cbc-padding-oracle.md:15: link does not resolve: /quest/m3/confidence/audit.md
quest: quest/m3/rustls-provider-panics.md:15: link does not resolve: /quest/m3/confidence/audit.md
error: recipe `ci` failed on line 21 with exit code 1
##[error]Process completed with exit code 1.
Post job cleanup.
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git version
git version 2.55.0
Temporarily overriding HOME='/var/cache/github-runner-work/_temp/193fb23e-62df-44de-b93d-7f16cf9569df' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --global --add safe.directory /var/cache/github-runner-work/rind/rind
Removing SSH command configuration
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Entering 'thirdparty/cavp'
Entering 'thirdparty/cctv'
Entering 'thirdparty/wycheproof'
Removing HTTP extra header
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Entering 'thirdparty/cavp'
Entering 'thirdparty/cctv'
Entering 'thirdparty/wycheproof'
Removing includeIf entries pointing to credentials config files
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Entering 'thirdparty/cavp'
file:/var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/cavp/config	remote.origin.url
Entering 'thirdparty/cctv'
file:/var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/cctv/config	remote.origin.url
Entering 'thirdparty/wycheproof'
file:/var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/wycheproof/config	remote.origin.url
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --file /var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/cavp/config --name-only --get-regexp ^includeIf\.gitdir:
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --file /var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/cctv/config --name-only --get-regexp ^includeIf\.gitdir:
[command]/nix/store/lg46w7hrjx7kylsh6645c9l975i8h43b-git-2.55.0/bin/git config --file /var/cache/github-runner-work/rind/rind/.git/modules/thirdparty/wycheproof/config --name-only --get-regexp ^includeIf\.gitdir:
A job completed hook has been configured by the self-hosted runner administrator
##[group]Run '/nix/store/gx2v6q84b0w43bafm0whkdx93qyxbpps-ci-cache-gc.sh/bin/ci-cache-gc.sh'
shell: /nix/store/1mv3qz005gkbalxfghk4y3s8ayv4d2dl-bash-interactive-5.3p15/bin/bash --noprofile --norc -e -o pipefail {0}
##[endgroup]
evicted 0 objects and 0 action results (0 B logical); 50.0 GiB logical remain
Cleaning up orphan processes

Queue / Queue (job) failure at step Require the build to pass:

Current runner version: '2.338.2'
##[group]Runner Image Provisioner
Hosted Compute Agent
Version: 20261028.624
Commit: 54898b74c23fde5556c9b3c3a2290865feef0dfe
Build Date: 2026-10-28T21:51:42Z
Worker ID: {56d3729a-62c0-4e69-b57e-dc06b5a74dd5}
Region: centralus
Cloud: Azure
##[endgroup]
##[group]Operating System
Ubuntu
24.04.5
LTS
##[endgroup]
##[group]Runner Image
Image: ubuntu-24.04
Version: 20261101.360.1
Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261101.360/images/ubuntu/Ubuntu2404-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261101.360
##[endgroup]
##[group]GITHUB_TOKEN Permissions
Contents: read
Metadata: read
##[endgroup]
Secret source: Actions
Cache mode: write
Prepare workflow directory
Prepare all required actions
Complete job name: Queue
##[group]Run [[ "$RESULT" == success ]] || { echo "::error::the queue build ended $RESULT" >&2; exit 1; }
�[36;1m[[ "$RESULT" == success ]] || { echo "::error::the queue build ended $RESULT" >&2; exit 1; }�[0m
shell: /usr/bin/bash -e {0}
env:
  RESULT: failure
##[endgroup]
##[error]the queue build ended failure
##[error]Process completed with exit code 1.
Cleaning up orphan processes

(written by quest land watch)

@moq-bot
moq-bot Bot enabled auto-merge November 7, 2026 23:38
@moq-bot

moq-bot Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

quest land watch: armed auto-merge on this pull request at 0170b71, so it joins the back of the merge queue once its required checks pass, with the land fixer's fix (codex, gpt-6.1-sol, medium effort): Merged base and redirected two completed coverage-audit links to TESTING.md; ran git diff --check and just ci base (bench tests, quest check, shellcheck, nixfmt)..

(written by quest land watch)

@moq-bot
moq-bot Bot added this pull request to the merge queue Nov 7, 2026
Merged via the queue into main with commit 127e311 Nov 7, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant