security: fail closed Maven prune without object-bound recycle - #173
Conversation
|
Warning Review limit reached
Next review available in: 50 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
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 |
Purpose
Close a destructive-authority gap on protected main
4f1728789bd65b6a1371018a77e85873d5949718.prune_maven_repository(..., apply=true, ...)currently re-audits a remote-recoverable Maven version directory and then permanently deletes the pathname withfs::remove_dir_all. That violates DiskSage's reversible-cleanup boundary and does not bind the final mutation primitive to the exact authorized filesystem object.RED
Current RED head:
b85b2bb806e9dc045fb8e7c8c9965c87d9f1b473.The added public integration regression creates one fully remote-attributed Maven candidate, captures its exact bytes, invokes apply-mode, and requires:
maven-cache-prune-identity-bound-recycle-unavailable;_remote.repositoriesbytes to remain unchanged.Protected main currently deletes that directory and returns success, so this regression is expected to fail until the production boundary is changed.
Intended fix
Preserve Maven audit and dry-run evidence. Fail apply-mode closed before any filesystem mutation until a platform-supported, object-bound, reversible recycle primitive exists. Do not replace the current permanent deletion with canonicalization, metadata rechecks, fingerprints, or another pathname-consuming delete.
This is a bounded child lane of issue #170. It does not broaden cache cleanup #169, coverage #156, Podman #150, release provenance #167, or developer-artifact cleanup #171.
Keep Draft through observed RED, narrow production fix, exact-head GREEN, fresh review, live-base convergence, and applicable coverage/governance evidence.