Repository navigation
Conversation
Signed-off-by: chaksaray <chaksaray@gmail.com>
This was referenced Oct 19, 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.
Closes #330.
Adds AVE-2026-00088, Sandbox side-effect trust handoff: a sandboxed coding agent, steered by content it reads, writes a file the sandbox allows (a hook definition, an editor task, Git metadata or hooks, the agent tool's own project configuration, a virtualenv interpreter), and a more-privileged component outside the sandbox later executes it as trusted configuration, so the agent's side effect runs on the host. MEDIUM, AIVSS 6.4.
One commit, following the 00087 precedent (4f3173b): the record, both fixtures, CHANGELOG, README and the dist pair.
Sources read (all opened directly)
.claude/settings.jsonand "inject persistent hooks ... that would execute with host privileges when Claude Code was restarted". CWE-501, CWE-668..gitsettings, including git hooks, which may cause out-of-sandbox RCE". Fixed in 2.5. Earliest vendor-confirmed instance.Danus365--separate-git-dirpast a literal.git/configdeny rule, thencore.fsmonitorrun by Cursor's Git extension host. Patched in 3.0.0, "awaiting CVE".runOn: folderOpentask; VS Code runs it on the host. Google: "Other valid security vulnerabilities", downgraded.settings.jsonmount, unresolved), Codex CLI (apply_patchcreates.codex/config.toml, whosenotifyruns outside the sandbox; OpenAI closed it as "Informational").Excluded from the class as different mechanisms: the Docker-socket escape (CVE-2026-73218), the Antigravity allow-default seatbelt, GitPwned (allowlisted
git show --output, which never ran sandboxed), Cymulate's Geminiwhere.exepre-launch planting, and the Codexagents.mdvector.Distinctness
Compared field by field (fingerprint,
provenance_vector,security_boundarywhere present) with 00064, 00054, 00050, 00084, 00071, 00075 and 00063, plus the token-overlap top five (00004, 00054, 00064, 00052, 00076). The crux is 00064. That record covers attacker-supplied project configuration that auto-runs on project load, a pre-consent boundary. Here the writer is the sandboxed agent, the file usually does not exist in the repository at all, and the trigger is usually not project load, so 00064's fix does not close it. The overlap is real for one vector of CVE-2026-48124, whose advisory names both "a malicious workspace" and "an agent-created file". The full comparison is in #330 and inaivss.notes.Q6, stated plainly
Replace the LLM with a deterministic program that has the same workspace write access and the flaw partly survives: any sandboxed process whose output a privileged consumer trusts can escape the same way. What remains agentic:
Classified A, not E, with that caveat written into the record. Discussion #234 has no recorded decision; its proposed test ("no model reasoning in the trigger") would not exclude this class.
Scoring
cvss_base7.7 fromCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N, the CVE-2026-25725 advisory's own vector and the most conservative vendor reading (Cursor scored its instance 8.5; CVE-2026-26268 was 8.0 under CVSS 3.1).aars6.5,thm0.90,mitigation_factor1: ((7.7 + 6.5) / 2) x 0.9 x 1 = 6.39, so 6.4 MEDIUM, confirmed byvalidate_records.py.Framework mappings (each read from its primary source today)
owasp_mcpMCP05: its checklist at commit 165fe0f names "Execution occurs across different contexts ... without re-validation". MCP02 was read and rejected.owasp_asiASI05: the 2026 document names "sandbox escape", and its Example 4 is an agent-generated object executed by another component without validation. ASI02 routes code-execution outcomes to ASI05. ASI03 was read and rejected.mitre_atlasAML.T0105 (Escape to Host) and AML.T0081 (Modify AI Agent Configuration), from the live ATLAS.yaml v5.6.0. T0105's own text describes this route.nist_ai_rmf[]: checked, no fit. MEASURE 2.7 is generic.Verified
validate_records.pypasses (88 valid),pytest523 passed, andcheck_fixtures.py,check_framework_sources.py --strict --only,check_vulnerability_taxonomy.py --strict --only, the confidence ratchet (1 record changed, passes) andcheck_terms_sync.pyall pass.dist/ave-records-latest.jsonequalsrecords/for all 88 records. The frozen v1.1.0 snapshot is untouched.verification_basiswas stamped bywrite_verification_basis.py --write(artifact_reconstructed).Could not verify
Danus365andhackerone.com/edbrcorrespond to named people in the Pillar and Cymulate teams. Neither advisory says, so the record does not assert it.Judgment calls for the maintainer
thm. CONTRIBUTING's scale gives 0.90 for "PoC exists" and 1.0 for in the wild.references/aivss-scoring.mdsays demonstrated mechanisms score 1 and that "every record in this corpus so far has scored 1", which is stale: 25 records are at 0.75 and 13 at 0.9. At thm 1 this record would be 7.1 HIGH.entry_classmodel_generated, reused from 00056 because the payload is something the agent produces rather than reads.runtimeis the alternative.write_verification_basis.py --writealso stamped 8 existing canonical records that have noverification_basison develop (00001, 00010, 00020, 00023, 00038, 00043, 00047, 00081). I reverted those, since this PR must not modify existing records. Anyone running--writewill pick them up.🤖 Generated with Claude Code