IGL is a governance and audit runtime. A security bug in IGL can break the identity, boundary, intent or trace guarantees that other systems rely on, so we treat every report seriously and quickly.
Do not open a public GitHub issue for security vulnerabilities.
Report privately through either channel:
- GitHub private vulnerability reporting: Report a vulnerability (preferred, creates a private advisory thread)
- Email: security@id-me.ai
Include a description of the vulnerability and which guarantee it affects (identity, boundary enforcement, intent recording, trace integrity, provenance rules), steps to reproduce or a proof of concept, and affected versions if known.
- Acknowledgment within 48 hours.
- Severity assessment within 5 business days, with a remediation timeline.
- We coordinate disclosure with you. Our target is a fix and advisory within 90 days; we will tell you if an issue is more complex and why.
- After a fix ships, we credit reporters in the advisory (unless you prefer anonymity).
- Advisories are published as GitHub Security Advisories with a CVE where applicable.
Issues that break a core guarantee are critical:
- Executing work without a valid identity binding
- Executing an action outside a declared boundary
- Forging, altering, or truncating a trace without breaking hash-chain verification
- Reclassifying provenance (making a lower class appear as
grantedorobserved: governing) - Bypassing canonicalization so that two different payloads hash identically
Issues in the platform contract (spec/) that would allow a conforming client to bypass a gate are treated as high. Issues in examples or docs are welcome but lower priority. The hosted platform at id-me.ai is in scope for reports; its infrastructure is out of scope for testing without written authorization.
The October 2026 review (docs/audit/SECURITY-AUDIT-2026-10.md) lists nine findings. F-01 to F-04 were fixed in 1.3.0 and F-05 to F-09 in 1.5.0; each has a regression test (test/security.test.js, test/audit.test.js) and the probe scripts that reproduced them are kept in docs/audit/ and now show the properties holding. The review was conducted by the project itself. No independent review has been performed yet, and we will say so until one has.
| Version | Supported |
|---|---|
| 1.x (latest minor) | Yes, security fixes |
| Older minors | Critical fixes only, at maintainer discretion |
- Release tags are signed. Verify a tag before building from source:
git tag -v v1.5.0. - Published packages carry npm provenance attestations; verify with
npm audit signatures. - You can check a trace yourself without trusting this project. A journal (
MemoryJournal,FileJournalorD1Journalinsrc/store.js) hasverify()for the hash chain,verify({ checkpoint })to detect a truncated or rewritten history against an anchor you hold,merkleRoot()andinclusionProof(seq)for selective disclosure, and the staticMemoryJournal.verifyInclusion({ leaf, proof, root })for the auditor's side. Receipts, grants and approvals verify throughSignerinsrc/sign.js. Everything is standard SHA-256 and Ed25519, so you can recompute it with any library you prefer.