Skip to content

Open the 0.2 alpha: harden acquisition and preserve bare locators - #38

Merged
b1rdmania merged 1 commit into
mainfrom
codex/security-hardening-batch
Aug 28, 2026
Merged

Open the 0.2 alpha: harden acquisition and preserve bare locators#38
b1rdmania merged 1 commit into
mainfrom
codex/security-hardening-batch

Conversation

@b1rdmania

@b1rdmania b1rdmania commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Status

Alpha merge waiver: security work in progress. This PR addresses reproduced acquisition and locator defects. It is not a comprehensive security review, penetration test, or security approval. On 28 August 2026 the repository owner explicitly waived the independent-review gate for the 0.2.0a1 alpha merge only; stable 0.2.0 remains blocked on that review.

This branch is rebased onto main@0e61510, after PR #39 and the a15 snapshot-qualification work in PR #41. The already-merged document-coordinate fix is not duplicated here.

Summary

  • restrict the shared HTTP resolver to absolute ASCII HTTP(S) URIs and public IPv4/IPv6 destinations
  • validate every redirect and bind each default connection to an admitted address while preserving the original HTTP/TLS hostname
  • bound declared and streamed response bytes, gzip/deflate output, extracted characters and PDF pages
  • run PDF parsing in a separate worker with wall-clock, CPU, resident-memory and output ceilings
  • reject unsupported media, encodings, embedded credentials and ambiguous/malformed URIs with typed fail-closed outcomes
  • require explicit opt-in for privileged injected HTTP/DNS test transports
  • preserve bare source locators without inventing a URL
  • classify locator-only evidence as unresolvable_source, keep it in coverage, and route it to citation_unconfirmed
  • preserve a15 byte-exact/normalised anchoring, hollow-capture detection, canonical snapshot resolution and capture declaration v3
  • open the 0.2.0a1 alpha line, with artifact segmenter v4, ledger segmenter v7, claim verification v4 and verification metrics v5

Reproductions closed by this batch

  • data: is no longer accepted as a source
  • loopback, private, link-local, metadata, multicast, reserved and unspecified destinations fail before the default request
  • redirect destinations pass the same URI/address policy and the socket does not repeat hostname resolution between admission and connection
  • declared, streamed and decompressed oversized bodies fail distinctly
  • malformed lengths and invalid or concatenated compressed streams fail closed
  • PDF parser failure and resource exhaustion stay outside the resolver process and fail closed
  • a bare locator survives Markdown, rendered HTML, canonical assessment, metrics and the IC ledger

Verification

  • focused acquisition/capture/snapshot-resolution/artifact/verification/support/ledger suite: 176 passed
  • full repository suite: 392 passed
  • live default-resolver probes: HTTP and HTTPS succeed; data:, loopback and 169.254.169.254 fail closed
  • git diff --check
  • Python bytecode compilation

Remaining boundaries requiring review

  • The connection-pinning and PDF-worker controls are newly implemented and have not passed independent adversarial security review. The owner waiver permits this alpha merge but does not satisfy the review required for stable 0.2.0.
  • Custom injected opener/address-resolver code is privileged and outside the default connection guarantee; using it requires allow_injected_transport=True.
  • The default transport deliberately does not inherit ambient proxy configuration. Any future proxy support needs its own destination and connection policy.
  • PDF limits combine native process limits with parent-side resident-memory observation because operating-system facilities differ; OS behavior and watchdog sampling remain review surface.
  • Artifact segmenter v4 has deterministic regression coverage for bare locators. It does not inherit the frozen v3 cross-format admission result.

Please review this as a hardening implementation with named residual risks, not as evidence that Groundnut is secure or comprehensively audited.

@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

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

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a071eaed-531d-4480-b3c3-2cb5c1937f33


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

Comment @coderabbitai help to get the list of available commands.

@b1rdmania
b1rdmania force-pushed the codex/security-hardening-batch branch 4 times, most recently from 10f6803 to 5466f9a Compare August 28, 2026 15:23
@b1rdmania b1rdmania added security Security hardening and vulnerability remediation bug Something isn't working enhancement New feature or request python Pull requests that update python code labels Aug 28, 2026
@b1rdmania b1rdmania self-assigned this Aug 28, 2026
@b1rdmania b1rdmania added this to the 0.2.0 milestone Aug 28, 2026
@b1rdmania b1rdmania changed the title Harden source acquisition and preserve bare locators Open the 0.2 alpha: harden acquisition and preserve bare locators Aug 28, 2026
@b1rdmania
b1rdmania force-pushed the codex/security-hardening-batch branch from 5466f9a to 63495e6 Compare August 28, 2026 18:02
@b1rdmania

Copy link
Copy Markdown
Owner Author

Owner waiver recorded — 28 August 2026: merge of the 0.2.0a1 alpha is authorized without the outstanding independent security review. This does not satisfy or remove that review gate for stable 0.2.0, and all security-work-in-progress language remains in force.

@b1rdmania
b1rdmania marked this pull request as ready for review August 28, 2026 18:02
@b1rdmania
b1rdmania merged commit 08d0d6b into main Aug 28, 2026
1 of 2 checks passed
@b1rdmania
b1rdmania deleted the codex/security-hardening-batch branch August 28, 2026 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request python Pull requests that update python code security Security hardening and vulnerability remediation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant