Skip to content

[Triage] README.md: false denial — N-10: Integrity manifest and audit log are not keyed without FORGELM_AUDIT_SECRET; editing the last log line leaves the chain self-consistent (DOC-D4B01-032) #834

Closed

Description

@cemililik

Needs triage. Reviewers disagreed on this finding, so it is not counted in the backlog. Decide whether it is a real defect: if yes, set severity and wave; if not, close it with the reason.

DOC-D4B01-032 — README.md: false denial — N-10: Integrity manifest and audit log are not keyed without FORGELM_AUDIT_SECRET; editing the last log line leaves the chain self-consistent

severity High · confidence disputed

Where. README.md:120 · type: false denial

The document says. N-10: Integrity manifest and audit log are not keyed without FORGELM_AUDIT_SECRET; editing the last log line leaves the chain self-consistent

What the code does. The audit log is HMAC'd only when FORGELM_AUDIT_SECRET is set (compliance.py:238-260,575-579), so the negative holds for the log. 'Neither is keyed unless you set FORGELM_AUDIT_SECRET' and the advice to 'set the secret' are false for model_integrity.json, which is never keyed. generate_model_integrity (compliance.py:760-818) and the trainer writer (trainer.py:2157-2167) use no secret or HMAC, and the model.integrity_verified audit event records only an artifact count. forgelm/verify/_model_integrity.py has no HMAC path. The manifest can be re-stamped even with the secret set.


Found by the October 2026 ForgeLM code and documentation review against commit cab2947. Code links point at that commit; line numbers may have moved since. Finding IDs (CR-…, DOC-…, TECH-…) are stable references for this backlog.

Activity

  1. added
    documentationImprovements or additions to documentation
    needs-triageNot triaged yet: every new issue starts with it; only a maintainer removes it
    source: review-2026-10Found by the October 2026 code and documentation review
    on Oct 9, 2026
  2. cemililik commented on Oct 20, 2026

    @cemililik
    CollaboratorAuthor

    This sentence no longer exists: the README was rewritten in 5971d58 and the 'Neither is keyed unless you set FORGELM_AUDIT_SECRET' wording is gone (checked on development). The finding was right about the manifest — model_integrity.json is never keyed, so setting the secret does not protect it — and only half right about the log, which is HMAC'd only when the secret is set.

    The current README says that for adversarial tamper-evidence you should configure the secret and protect storage, which holds for the audit log and does not claim the manifest is keyed.

    The remaining verify-integrity wording (--help, reference page, manual) is tracked in #436. Closing as fixed.

    Triage round 1, checked against development on 2026-10-20.

  3. removed
    needs-triageNot triaged yet: every new issue starts with it; only a maintainer removes it
    on Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationsource: review-2026-10Found by the October 2026 code and documentation review

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions