fix(ci): restore Codex Security scan execution - #3124
Open
alangou wants to merge 2 commits into
Open
Conversation
alangou
requested review from
a team,
derekwaynecarr,
mrunalp and
sjenning
as code owners
September 2, 2026 08:43
alangou
force-pushed
the
2989-fix-codex-security-manual-runs/ag
branch
7 times, most recently
from
September 2, 2026 13:29
08ca589 to
c285000
Compare
Signed-off-by: Adrien Langou <alangou@nvidia.com>
alangou
force-pushed
the
2989-fix-codex-security-manual-runs/ag
branch
3 times, most recently
from
September 2, 2026 15:13
610d7ed to
a17e544
Compare
Signed-off-by: Adrien Langou <alangou@nvidia.com>
alangou
force-pushed
the
2989-fix-codex-security-manual-runs/ag
branch
from
September 2, 2026 15:24
a17e544 to
d35bdc0
Compare
SDAChess
approved these changes
Sep 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Codex Security release qualification never produced a report. The scan agent
could not execute a single shell command on GitHub-hosted runners, so it sealed
no draft and every run failed with a missing or incomplete draft. This restores
a completing scan and adds the diagnostics that made the cause visible.
Related Issue
Part of #2989.
Changes
kernel.apparmor_restrict_unprivileged_usernsbefore installing thescanner. Codex confines model-run commands with bubblewrap, which needs
unprivileged user namespaces. Ubuntu 24.04 restricts those through AppArmor,
so bubblewrap failed to configure the sandbox network namespace
(
bwrap: loopback: Failed RTM_NEWADDR) and the agent executed nothing.approval_policy="never"for the scan. Codex Security pinsapprovals_reviewer="auto_review"unconditionally, and that reviewer runs ongpt-5.6-luna, which the configured NVIDIA endpoint does not serve, so everyapproval request went to an unreachable model.
analyzejob onubuntu-latest. The agent executes no shellcommands at all on the repository self-hosted runner, so its preflight never
scopes the diff.
result files written, the runtime negotiated per turn, agent item types,
plugin tool outcomes, and shell command outcomes. A scan that stops before
sealing its draft otherwise looks identical whatever the cause.
and report the two kernel switches bubblewrap depends on.
published the resolved addresses of the inference endpoint, which are
internal on a self-hosted runner, into public workflow logs.
upload_sarifinput so manual dispatches do not overwrite a releasetrain's published analysis.
Testing
mise run pre-commitpasses.github/workflows/codex-security.ymlmise run markdown:lintpassesvalidated, attack paths analyzed, report written, SARIF exported
(run 33636911133, 16m20s)
AppArmor userns restriction: 1andbwrap: loopback: Failed RTM_NEWADDRgave up, on both GitHub-hosted and self-hosted runners
openai/gpt-5.6-solandgpt-5.6-solreturn403 key not allowed to access model, so theslash-qualified identifier cannot be shortened to let Codex resolve model
metadata
Known gaps, not addressed here:
from six surfaces and one medium finding to four surfaces and none, while both
runs still reported complete coverage.
requires
openai/openai/gpt-5.6-solwhile Codex strips only one prefixsegment. This is also why
--max-costdoes not apply.Checklist