fix(ci): unblock GHCR workflow (Trivy disk + GHSA) - #316
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
1 similar comment
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
WalkthroughAppended new Trivy ignore entries to three Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
🧰 Additional context used🧠 Learnings (1)📚 Learning: 2025-12-15T12:03:17.265ZApplied to files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
🔇 Additional comments (1)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.github/workflows/integrations-ghcr.yml (1)
308-316: Disk cleanup logic is sound and addresses the ENOSPC issue.The step correctly prunes Docker caches and artifacts before the Trivy scan. The use of
|| trueensures resilience, and the placement before image pull is optimal.Note:
docker builder pruneanddocker buildx prunemay be redundant, asdocker buildx pruneis the newer command that supersedesdocker builder prune. Consider removing the deprecateddocker builder prune -afin a future cleanup.Apply this diff to remove the redundant command:
docker system df || true docker buildx prune -af || true - docker builder prune -af || true docker system prune -af --volumes || true df -h
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.github/trivy/agent-zero.trivyignore(1 hunks).github/trivy/open-notebook.trivyignore(1 hunks).github/workflows/integrations-ghcr.yml(3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/{.github,ci,lint,scripts}/**/*.{py,js,yaml,yml}
📄 CodeRabbit inference engine (GEMINI.md)
Draft a CI-oriented pack manifest linter for validation
Files:
.github/workflows/integrations-ghcr.yml
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
Repo: POWERFULMOVES/PMOVES.AI PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T12:03:17.265Z
Learning: Applies to {Dockerfile,docker-compose.yml,docker-compose.*.yml,pmoves/docker-compose.*.override.yml} : Dockerfile and docker-compose.yml must follow multi-arch build practices (amd64+arm64) with Trivy scanning for HIGH/CRITICAL vulnerabilities
📚 Learning: 2025-12-15T12:03:17.265Z
Learnt from: CR
Repo: POWERFULMOVES/PMOVES.AI PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-15T12:03:17.265Z
Learning: Applies to {Dockerfile,docker-compose.yml,docker-compose.*.yml,pmoves/docker-compose.*.override.yml} : Dockerfile and docker-compose.yml must follow multi-arch build practices (amd64+arm64) with Trivy scanning for HIGH/CRITICAL vulnerabilities
Applied to files:
.github/workflows/integrations-ghcr.yml
🔇 Additional comments (3)
.github/workflows/integrations-ghcr.yml (2)
349-349: Consistent application of scanner configuration.The
scanners: 'vuln'configuration is correctly applied to both Trivy scan steps, ensuring consistent scanning behavior across the gating scan and the full report.
335-335: Thescanners: 'vuln'configuration is correct for Trivy action v0.24.0 and properly achieves the stated objective.The syntax is valid and the parameter is correctly applied to both vulnerability scan steps. By restricting to
vuln, the configuration disables secret, misconfig, and license scanning, directly improving performance and reducing resource usage as intended..github/trivy/open-notebook.trivyignore (1)
11-12: The suppression of GHSA-5j59-xgg2-r9c4 is appropriate and justified.GHSA-5j59-xgg2-r9c4 is a legitimate, high-severity Next.js vulnerability (React Server Components denial-of-service, CVE-2025-67779) that directly affects the open-notebook image (which uses Next.js for its frontend). Temporary suppression is correct while upstream patches are integrated into the PMOVES-Open-Notebook fork.
| # Next: keep CI green while upstream fixes roll out in the fork. | ||
| GHSA-c2jp-c369-7pvx |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
GHSA-c2jp-c369-7pvx GitHub security advisory
💡 Result:
I couldn't find any GitHub Advisory record for GHSA-c2jp-c369-7pvx. The GHSA ID format is valid, but searches of the GitHub Advisory Database and public vulnerability indexes returned no matching advisory or CVE entry ([1], [2]).
If you want, I can:
- re-run a deeper search (other sources / older snapshots),
- check for a similar GHSA (maybe a typographical error), or
- query the GitHub Advisory API for that GHSA ID and return the raw result.
Which would you prefer?
Sources:
[1] GitHub Advisory Database — about GHSA IDs.
[2] Miggo vulnerability DB page for GHSA-c2jp-c369-7pvx (no details found).
🏁 Script executed:
# Check the trivyignore file context and surrounding lines
cat -n .github/trivy/agent-zero.trivyignoreRepository: POWERFULMOVES/PMOVES.AI
Length of output: 629
🏁 Script executed:
# Search for any references to this GHSA ID in the codebase
rg "c2jp-c369-7pvx" --no-headingRepository: POWERFULMOVES/PMOVES.AI
Length of output: 49
🏁 Script executed:
# Check git log for the trivyignore file to see when and why this was added
git log --oneline -p .github/trivy/agent-zero.trivyignore | head -100Repository: POWERFULMOVES/PMOVES.AI
Length of output: 804
🏁 Script executed:
# Search for any similar GHSA IDs that might be a typo
rg "GHSA-" .github/trivy/ --no-headingRepository: POWERFULMOVES/PMOVES.AI
Length of output: 183
🌐 Web query:
GHSA-5j59-xgg2-r9c4 GitHub security advisory
💡 Result:
Summary: GHSA-5j59-xgg2-r9c4 is a High-severity denial-of-service follow-up for React Server Components (tracked as CVE-2025-67779). A specially crafted HTTP request to a Server Function can cause the server runtime to enter an infinite loop and hang/consume CPU. Affects React server DOM packages and Next.js App Router usages. [1][2][3]
Affected software (high-level):
- React server DOM packages / React versions including 19.0.2, 19.1.3, 19.2.2 (and other 19.x releases listed by React). [2]
- Next.js App Router versions >= 13.3, >=14, >=15, >=16 (specific vulnerable ranges per advisory). [1]
Severity and ID:
- GitHub advisory: High (CVSS 7.5). CVE: CVE-2025-67779. [1][4]
Mitigation / recommended action (immediate):
- Upgrade Next.js to the patched releases listed in the advisory (examples: 14.2.35, 16.0.10, 15.0.7 / 15.x patched builds — see advisory for full list). [1]
- Upgrade React server packages to the fixed versions recommended by the React team (follow React blog/announcements and upgrade to the post-December-11 fixes). If you previously updated to 19.0.2 / 19.1.3 / 19.2.2, update again to the later fixed releases. [2]
- If you expose Server Function endpoints, apply the upgrades ASAP and monitor CPU/hang symptoms; consider rate-limiting or blocking suspicious requests until patched. [1][2]
References:
- Next.js GitHub advisory GHSA-5j59-xgg2-r9c4 (patched Next.js versions, details). [1]
- React blog post: “Denial of Service and Source Code Exposure in React Server Components” (December 11, 2025). [2]
- OSV/aggregated vulnerability entry. [3]
- NVD entry for CVE-2025-67779. [4]
Would you like me to check your project's package.json / lockfile for vulnerable versions and produce exact upgrade commands?
🏁 Script executed:
# Search for similar GHSA IDs or typos - look for c2jp pattern
rg "c2jp|c369|7pvx" --no-headingRepository: POWERFULMOVES/PMOVES.AI
Length of output: 1218
🌐 Web query:
GHSA ID similar to c2jp-c369 vulnerability database
💡 Result:
The GHSA identifier is GHSA-c2jp-c369-7pvx. [1][2]
Sources:
- OSV / GitHub advisory listing: GHSA-c2jp-c369-7pvx. [1]
- GitHub advisory / vulnerability details (FastMCP). [2]
🌐 Web query:
GHSA-c2jp-c369-7pvx FastMCP advisory details vulnerability
💡 Result:
Summary — GHSA-c2jp-c369-7pvx (FastMCP)
- Title: FastMCP Auth Integration Allows for Confused Deputy Account Takeover. [High severity] . [1]
- Affected: fastmcp versions < 2.13.0. [1][2]
- Disclosure / published: Oct 28–29, 2025. [1][2]
- Vulnerability type: OAuth confused‑deputy / authorization-consent bypass (authorization code returned to attacker-controlled client when victim has prior IdP consent cookie). Exploitation requires luring a previously‑authenticated user to a crafted authorize URL (social‑engineering). [1][3]
- Impact: Attacker can obtain an authorization code and exchange it for tokens to access the MCP server as the victim (account takeover / unauthorized access). [1][3]
- Severity / score: CVSS v4 reported ~7.3 (High). [2][3]
- Fix / mitigation: Patch to fastmcp 2.13.0; change authorize flow to require explicit local consent (interstitial / /consent) instead of relying solely on downstream IdP cookie. Upgrade to 2.13.0 (or later) is recommended; if immediate upgrade not possible, block untrusted redirect usage, require explicit user consent, or revoke IdP static-client consent where feasible. [1][3]
- References: GitHub advisory (official) — GHSA-c2jp-c369-7pvx. [1] OSV entry (metadata & CVSS). [2] Technical writeups / vendor scans summarizing impact and mitigations. [3][4]
Sources: [1] GitHub security advisory for jlowin/fastmcp. [2] OSV / import of the GHSA. [3] Wiz vulnerability DB summary. [4] ResolvedSecurity summary.
🌐 Web query:
GHSA-c2jp-c369-7pvx package affected CVE
💡 Result:
- Affected package: fastmcp (PyPI), versions < 2.13.0 — patched in 2.13.0. [1]
- CVE: GitHub/OSV advisory GHSA-c2jp-c369-7pvx does not list an assigned CVE ID (no CVE reported). Severity CVSS v4 = 7.3 (High). [1][2]
Sources:
[1] GitHub advisory for GHSA-c2jp-c369-7pvx (fastmcp).
[2] OSV / imported advisory record for GHSA-c2jp-c369-7pvx.
🏁 Script executed:
# Search for fastmcp in requirements files and dependencies
rg "fastmcp" --no-heading -iRepository: POWERFULMOVES/PMOVES.AI
Length of output: 8390
🏁 Script executed:
# Check agent-zero service dependencies
find . -name "requirements*.txt" -o -name "requirements*.lock" -o -name "pyproject.toml" -o -name "setup.py" | grep -i agentRepository: POWERFULMOVES/PMOVES.AI
Length of output: 159
🏁 Script executed:
# Get the exact fastmcp version from agent-zero requirements.lock
grep -A 5 "^fastmcp==" pmoves/services/agent-zero/requirements.lock | head -10Repository: POWERFULMOVES/PMOVES.AI
Length of output: 413
Remove this trivyignore entry—fastmcp is already patched.
GHSA-c2jp-c369-7pvx is a valid High-severity OAuth confused deputy vulnerability affecting fastmcp < 2.13.0. However, agent-zero currently uses fastmcp==2.14.0, which is newer than the patched version (2.13.0) and is not vulnerable. The trivyignore entry is unnecessary and should be removed; no security advisory needs to be suppressed.
🤖 Prompt for AI Agents
.github/trivy/agent-zero.trivyignore lines 14-15: remove the GHSA-c2jp-c369-7pvx
entry from the trivyignore file because agent-zero uses fastmcp==2.14.0 and the
suppression is no longer needed; delete that specific line and save the file,
then re-run the Trivy scan to confirm the advisory is no longer suppressed.
…-2025-12-15 fix(ci): unblock GHCR workflow (Trivy disk + GHSA)
scanners: vulnto disable secret scanning (faster + less resource usage).Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.