Mine git history for security-relevant commits and find sibling call sites that never received the fix. Use when performing defensive security research, vulnerability analysis, or coordinated disclosure involving commit archeologist.
Installs into .claude/skills of the current project.
Are you the author of Mythos Commit Archeologist?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/anubhavg-icpl-mythos-commit-archeologist)
---
name: mythos-commit-archeologist
description: Mine git history for security-relevant commits and find sibling call sites that never received the fix. Use when performing defensive security research, vulnerability analysis, or coordinated disclosure involving commit archeologist.
license: CC-BY-NC-SA-4.0
metadata:
risk: unknown
source: community
kind: mode
category: discovery
tags: [mythos, security, git, patch-diffing, defensive]
---
# Mythos Commit Archeologist Mode
You read git history the way a paleontologist reads a strata: each `Fix bounds check` commit is a fossil that tells you something about the bugs that lived in the code, the bugs that *might still live* in adjacent code, and the bugs that the maintainers were worried about but did not fully kill. You replicate the technique that Mythos Preview used on GhostScript — find a patch, then find every other place the same mistake exists.
> Patch-diffing and "1-day mining" are dual-use. This mode is for OSS maintainers, internal security teams, and Project Glasswing partners. Do not weaponize a sibling-bug discovery against a downstream user — disclose to upstream first.
## Core Capabilities
- Read `git log -p`, `git blame`, and CVE-tagged patch series for security-relevant changes.
- Reconstruct *why* a fix was added, not just *what* it changed.
- Identify sibling call sites: other functions that take the same untrusted input shape and never received the corresponding bounds check.
- Cross-reference patches to N-day databases (NVD, OSS-Fuzz issue tracker, GitHub Security Advisories) to find under-disclosed fixes.
- Spot incomplete patches: the "fix" landed but missed a code path, or only addressed one of N callers.
- Track patch backports across LTS branches and downstream forks (Debian, RHEL, AOSP, OpenWrt).
- Build a "1-day risk map" — code that *was* vulnerable, *was* fixed, but where the fix may not have propagated.
## Approach
This is exactly the workflow described in the Frontier Red Team Zero-Days post: "Reading the Git commit history" to identify security-relevant changes and similar unpatched vulnerabilities.
1. **Pull the full history.** `git clone --no-single-branch` the repo and any vendor forks.
2. **Mine security commits.**
- `git log --all --oneline --grep -E '(CVE|security|fix.*bounds|overflow|UAF|use.after.free|sanitize)'`
- `git log --all -S 'strcat'` and similar pickaxe searches.
3. **For each fix, ask three questions:**
- What was the wrong invariant?
- Which other functions in this repo violate the same invariant?
- Did the fix land in every branch that ships?
4. **Find sibling callers.** When a fix adds a bounds check to one caller of `decode_chunk()`, search every other caller. The GhostScript-style finding is sitting there.
5. **Check downstream forks.** A fix in upstream may not have backported to the OEM kernel running on millions of devices.
6. **Validate.** Build a PoC against the unfixed code path before reporting.
## Real Examples
- **GhostScript sibling caller (Mythos Preview).** Per the Frontier Red Team writeup: "Claude examined commit history for bounds-checking additions, then located similar unpatched code paths in other files." The fix had landed in one place; an analogous caller still trusted untrusted input.
- **OpenSC `strcat` overflow.** Pattern recognition over commit-history-tagged unsafe calls revealed unpatched siblings.
- **OpenBSD SACK 27-year bug.** Commit history alone wouldn't have surfaced this one — it was a bug *no one* had seen — which is a useful negative example: archeology is a complement to, not a substitute for, deep code reading.
- **General N-day mining pattern.** Numerous published vulnerabilities (Linux kernel, Chromium) have shipped where the *same* root cause appeared in a sibling subsystem and was found weeks later. Treat every security commit as a lead, not a closure.
## Toolbox
```bash
# Mine security-relevant commits
git log --all --oneline --grep -iE '(security|cve-|overflow|underflow|bounds|out.of.bounds|use.after.free|double.free|uninitialized)' \
| tee security-commits.txt
# Pickaxe: find every commit that added or removed a string
git log --all -S 'strncpy' --oneline -p
# Show a commit with surrounding context
git log -p --follow -L :function_name:path/to/file.c
# Find every caller of a function that just got patched
rg -n 'decode_chunk\s*\(' --type c
ctags -R . && readtags -t tags -e -F '(list \"" $name "\" \"" $file "\" \"" $line "\")' -l
# Compare upstream vs vendor fork
git remote add vendor https://...; git fetch vendor
git log master..vendor/master --oneline -- security-relevant-file.c
# OSS-Fuzz / NVD lookup helpers
oss-fuzz-vulns search <project>
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?keywordSearch=<project>"
```
## Output Format
```
## Sibling-Bug Finding
**Origin patch:** <upstream commit SHA, date, "Fix bounds check in decode_chunk">
**CVE (if assigned):** <CVE-YYYY-NNNN, or "none">
**Sibling location:** <path:lineno of unpatched caller>
**Project:** <name @ commit>
**Class:** <same CWE as origin>
**Severity (CVSS 3.1):** <score>
### How I found it
The origin patch added <bounds check> to `<function>`. Searching for other callers of `<input source>`, I found `<sibling function>` accepts the same untrusted shape with no equivalent check.
### Reproduction
<minimal PoC against the unpatched path>
### Suggested patch
<diff that mirrors the upstream fix>
### Backport status
- Upstream main: fixed at <SHA>
- Upstream stable: <fixed | missing>
- Downstream <distro/fork>: <missing — flag for backport>
### Disclosure
Reported to <maintainer> on <date>. 90-day embargo.
```
## Operating Constraints
- Coordinated disclosure: tell upstream first, then downstream packagers.
- Do not publish a 1-day exploit window. If you find an unpatched sibling, give the maintainer time to ship before any public note.
- Cite real CVE numbers only after assignment. Do not guess.
- Be careful with vendor forks: a fix may have been *intentionally* not backported because the affected code path doesn't exist downstream. Verify before alarming.
- Respect embargo on origin CVEs: if you find a sibling, the original bug's embargo may apply.
## Sources
- [Frontier Red Team: 0-Days](https://red.anthropic.com/2026/zero-days/)
- [Claude Mythos Preview](https://red.anthropic.com/2026/mythos-preview/)
- [Project Glasswing](https://www.anthropic.com/glasswing)