Cybersecurity Researcher & Developer
Offensive Security · OS Internals · AI Tooling
Penetration Testing · Bug Bounty · Zero-Day Research
At a Glance
- Role: Gavin Blacklock, security engineer and researcher. Epsilon0xCell is the name on the account; the work is where offensive security, operating-system internals, and AI tooling meet.
- Fleet: 763 repositories across my account and my organizations. At the center, a 584-project library, built under my direction and audited line by line.
- Succession proof: proof-of-succession indexes 2,867 commits under my name, across 32 repositories.
- Credentials: GIAC Security Essentials (GSEC) and GIAC Foundational Cybersecurity Technologies (GFACT), and invited member of the GIAC Advisory Board.
- Recognition: Seventy-second nationally in the NSA Codebreaker Challenge, alone. National Cyber Scholar with Honors, three years running.
- Standing: The Scholar title is earned by 600 of 30,000 students who seek to qualify: the top 2% of the national cybersecurity student funnel, held with Honors three years running. He attained the CyberStart America maximum score of 147,600 in three consecutive program years. Measured against the whole field, an assessment of this record models the 88th percentile of all participants in cybersecurity, and a modeled 76th percentile among working professionals alone.
- Flagships: Four flagships, each with a single charge. ShadowStrike OS, the platform. NightSalvo, the flagship tool. Event_Zero, AI analysis in isolation. Eclipse Shield, a hardened Flask backend.
- CVE Record: Fourteen published advisories from my own fleet audit and thirty-two third-party coordinated disclosures, every one linked to its live record. Full record: see CVE Record below.
- CTF Writeups: NIGHTSALVO // CTF WRITEUPS: 11 solved challenges written up in full, ranked on a tier ladder that starts at INITIATE.
Two CVE IDs have been assigned and published by the VulnCheck CNA: CVE-2026-120459 for python-jose, which credits me as a finder alongside Conner Webber, and CVE-2026-120492 for Chainlit. A third ID, CVE-2026-114360, is assigned to a webpack-dev-server advisory still in draft, where I am credited as a reporter. The remaining entries are filed records in review, and the closed ones say so plainly. Every entry links to its live advisory or submission record, and each entry gains its direct CVE record link the day an ID is assigned.
My method, in one line: I read a published security fix closely, then test whether the same flaw survives in a sibling surface the fix did not reach, and I file only when the surviving flaw reproduces against the current release with controls.
For disclosure coordination or follow-up on any record below, reach me through this GitHub account or at epsilon0cell@proton.me.
Fourteen advisories from my own fleet audit, each found, fixed, and disclosed under my name:
- GHSA-3f3v-f9h4-cr86: pa-permission-human-review-reminder: code injection through an eval() call run on a value taken from its JSON config file (CWE-95).
- GHSA-25g4-c832-64qm: tm-misconfigurationdetector: code injection through eval() on rules-file conditions (CWE-95).
- GHSA-jpj2-7hpf-cj7w: dm-structured-data-anonymizer: code injection through eval() of config transformation rules (CWE-95).
- GHSA-27ph-qx26-578x: dm-data-conditional-masker: code injection through eval() of masking conditions (CWE-95).
- GHSA-wgp3-ch2c-77vr: sao-logeventcorrelator: command injection through an os.system command built from a config pattern name (CWE-78).
- GHSA-w4qr-hm9q-4wpr: cvsa-dependency-checker: command injection through a shell=True command built from the project path (CWE-78).
- GHSA-7crg-qw6v-xgmh: cba-immutable-infrastructure-verifier: command injection through a definition-file service name (CWE-78).
- GHSA-5589-fcgv-3r86: spc-policyenforcergenerator: policy values escape into the Python and bash enforcement scripts the tool generates (CWE-94).
- GHSA-64cm-g5wr-5r9v: net-ssdp-discover: server-side request forgery through the SSDP LOCATION header (CWE-918).
- GHSA-537q-47qg-99wc: tif-feedindicatorconverter: path traversal in tarfile extraction (CWE-22).
- GHSA-27jf-w9q3-9mc2: pa-permission-consistency-checker: symlink-following chmod applied outside the checked tree (CWE-59).
- GHSA-wrfq-r9wm-6rqw: codeintel-fuzz-test-generator: the generator executes the target module it presents as static analysis (CWE-829).
- GHSA-3cff-rm2w-h9rp: tma-threat-model-dataflowdiagramgenerator: PlantUML directive injection (CWE-74).
- GHSA-h662-mq2p-c25h: Zenyx-Markdown-Reader: javascript: and data: URL passthrough (CWE-79).
Findings in other people's projects, reported under my name through coordinated disclosure:
- Universal_HamRadio_Remote_HTML5 (F4HTB): unauthenticated remote code execution through a configuration value, my CVSS estimate 9.8 in the default configuration. Reported under my name to VulnCheck for coordinated disclosure; in review. Submission ID: 7b38ff57-7ae7-4cfe-802b-1a0151b9b76f.
- Authlib: public keys accepted as HMAC secrets, CVSS 7.4. Reported privately; in triage.
- joserfc: public keys accepted as HMAC secrets, CVSS 7.4. Reported privately; in triage.
- MLflow: assessment_id path traversal, CVSS 7.0. Reported privately; in triage.
- CVE-2026-120459: python-jose, empty HMAC keys accepted, CVSS 7.4. Reported to VulnCheck for coordinated disclosure and published by the VulnCheck CNA on 2026-11-02, crediting me as a finder alongside Conner Webber. Global advisory GHSA-7jv8-hwmh-86qc. Submission ID: 4fa6aca3-107c-4303-8431-94435d352047.
- fast-jwt: public keys accepted as HMAC secrets, CVSS 7.4. Reported privately; closed by the maintainers on 2026-11-02, who confirmed the behavior and documented it as a conscious design decision, so no advisory was published.
- happy-dom: server-side request forgery through a preload fetch, CVSS 7.5. Reported privately; in triage.
- LMDeploy: unauthenticated pickle deserialization, CVSS 9.8. Reported privately; in triage.
- Langroid: SQLite file read and write through a validator gap, CVSS 9.1. Reported privately; in triage.
- Hydra: pickle entry points left open by a target policy, CVSS 7.8. Reported privately; in triage.
- Home Assistant: symlink following backup restore, CVSS 7.5. Reported privately; in triage.
- LiteLLM: Responses API id forgery, CVSS 7.1 per the filed vector (the packet stated 6.4). Reported privately; in triage.
- OAuthLib: split client identity on revocation and introspection, CVSS 6.3. Reported privately; in triage.
- CVE-2026-120492: Chainlit, MCP allowlist scope escape through a semicolon path segment, CVSS 6.5 per my filed vector (published at 5.4). Reported to VulnCheck for coordinated disclosure and published by the VulnCheck CNA on 2026-11-02 as an incomplete fix of CVE-2026-45019. Global advisory GHSA-xhx7-9vjr-p2h8. Submission ID: be91a8cb-6b80-4c6b-a1b3-6f8c97a6076f.
- fsspec: template evaluation through the simple-template branch an earlier fix missed, CVSS 7.4. Reported privately; in triage.
- gradio: multipart field data with no size limit, CVSS 7.5. Reported privately; in triage.
- gunicorn: ASGI chunk terminator never verified, CVSS 6.5 per the filed vector (the packet stated 5.4, corrected at filing). Reported privately; in triage.
- setuptools: MANIFEST.in exclusion bypass in the vendored distutils file list, CVSS 2.5. Reported privately; in triage.
- Django: a crafted SQL connector settable after Q construction, past the CVE-2025-64459 validation, CVSS 5.9. Reported to the Django security team by email; rejected by the Django Security Team on 2026-11-02 because Node.add and attribute assignment are outside Django's public API and out of scope per the CVE-2025-64459 remediation.
- Django: in 5.2.18 and 6.0.9 the cache middleware tests the whole Cache-Control value for the text "public", so a value carrying that text inside another token or a quoted parameter skips the Vary: Authorization patch and an authorized response is served to anonymous requests, the residual shape of the CVE-2026-35193 fix, CVSS 5.3 suggested. Reported to the Django security team by email on 2026-11-02; awaiting response.
- Apache Superset: chart update ties a chart to a dashboard the user can only read, CVSS 4.3. Reported to the Apache Superset security team by email, with the proof level stated in the report; in review.
- marked: denial of service through asterisk emphasis delimiter runs, CVSS 7.5. Reported privately; closed by the maintainer on 2026-11-02, who judged it not a vulnerability in marked itself because marked documents worker usage for untrusted markdown. The first filing from the campaign's greenfield zero-day board.
- multer: denial of service through an oversized array index in field names, with the shipped fix limit left at its disabled default, CVSS 7.5. Reported privately; closed by the maintainers on 2026-11-02 as out of scope, the observation confirmed and the opt-in limit documented as a deliberate backward compatibility decision.
- form-data: CRLF header injection through the contentType option, surviving in the release that fixed the sibling name and filename channels, CVSS 5.3. Reported privately; in triage.
- redis-py: pure Python RESP parsers accept negative lengths and fabricate empty responses, CVSS 6.5 per the filed vector (the packet stated 5.3, corrected at filing). Reported to VulnCheck for coordinated disclosure; in review. Submission ID: 1c52fb29-93bd-4ea2-a5af-332bc26e9333.
- validator: isURL backslash host confusion bypasses a host whitelist, CVSS 6.5. Reported privately; in triage.
- protobufjs: quadratic denial of service through fieldsById rebuilds during type construction, CVSS 5.3. Reported privately; in triage.
- PyJWT: a malformed oct JWK missing its key material aborts parsing of the whole key set, CVSS 5.9. Reported privately; in triage.
- Pillow: MSP RLE decoder clamp overshoots the packed row size eightfold, CVSS 5.3. Reported privately; in triage. The maintainer noted the referenced proof files were not attached, and I posted the full proof script and captured output into the advisory on 2026-11-02.
- parse5: quadratic denial of service through deeply nested special elements, CVSS 7.5. Reported privately; in triage.
- vite: a custom server.fs.deny entry silently discards the built-in sensitive-file blocklist, so .env files, private keys, .npmrc, and .git contents are served, CVSS 5.9. Reported privately; in triage.
- webpack-dev-server: the same-origin fallback behind the internal endpoint CSRF guard accepts any Origin when the Host is allow-listed, an incomplete patch inside the GHSA-f5vj-f2hx-8m93 fix, CVSS 4.2 per the filed vector (the packet stated 4.4, corrected at filing). Reported privately; closed on 2026-11-02 as a duplicate and merged into the canonical advisory GHSA-pmx6-3hc4-22qg, where I am credited as a reporter. That advisory carries CVE-2026-114360 and is still in draft.
Successor account. This is the new home of the builder behind @CY83R-3X71NC710N, an account I opened in April 2022 at fifteen years old and built over four years into 163 repositories and a nationally ranked open-source record. I stopped working from it in September 2026 and consolidated everything here, with full histories migrated and re-signed under this account's identity. The original stands untouched as the archive of record, and everything new ships from here.
One builder, two accounts. The old account is retired and cannot post, so it cannot vouch for this one, and copied code alone would prove nothing anyway: everything it published is public, and anyone can copy public work. Two things cannot be copied into existence. The lineage: the project histories continue here without a break, including Event_Zero, Eclipse-Shield, and the ShadowGuard library now restoring under the ShadowGuard-AI organization, the same commits carried forward and re-signed under this account. And the name: the old account's history carries my full legal name, the name listed on my LinkedIn, as the author of 2,867 of its commits across 32 repositories, written between January and May 2023, before my git identity switched to my handle, and years before this account existed. Every one of those commits is indexed in proof-of-succession, together with the Terms of Service basis for the succession. The rest of the record matches as well, offered as consistency rather than proof: the starred library matches the old account exactly, 168 of 168 repositories, and its following network is being rebuilt name by name, ending with the old account itself. If the old account still shows fresh commits, that is its CI/CD: GitHub Actions workflows I built years ago, including a weather dashboard updater and a quote scraper, still run on schedule and commit on their own, with no human working from that account since September 2026.
ShadowStrike OS: the platform
- Purpose: A Linux distribution of my own design, made for penetration testing and security research, with security at its center.
- Role: My principal testbed, where new security tooling is tried and systems are hardened.
- Status: Public now, under the ShadowStrike organization.
- Architecture: A hardened base, a tiling window workflow, an expanded toolset in containers, and support for ARM64 virtualization.
- Key Features: Role-based tooling menus, integrated WireGuard configurations, and a custom AI assistant built to automate research tasks.
- Roadmap: Ahead: post-quantum cryptography integration, and adversarial AI threat modeling.
NightSalvo: the flagship tool
Night falls. Threats end.
- The flagship engineering effort, developed in private, with patience, and held to an audit-first standard.
- At its heart, an original architecture in three movements: an autonomous planner, an enforced scope guard, and a hash-chained evidence ledger. Imagination, restraint, proof.
- It was designed so that every action is authorized before it is taken, bounded while it runs, and provable after the fact.
- What can be shown is shown: public artifacts and proof appear through the NightSalvo organization as they clear review.
Shatterpoint Security: the firm
- Role: Founder of Shatterpoint Security.
- Practice: An offensive-security practice in formation, deliberately boutique: small by design, exacting by habit.
- Services: Penetration testing · red teaming · AI security testing.
- I am Gavin Blacklock. Since I was twelve, I have been asking how systems work. I never stopped asking.
- The last five years belong to three crafts: systems engineering, offensive tradecraft, and autonomous tools.
- I build at the intersection of AI and systems security, and security comes first.
- I work both sides of the discipline. I build, and I break.
- The duality even has a color: purple. To defend well, first understand the offense. That is the method behind everything below.
- NSA Codebreaker Challenge (2023–2024)
- Seventy-second in the nation, competing solo against multi-person university teams: the top 16% of more than 450 institutions.
- Level 7 reached within the first 10 days of a four-month competition.
- Held the #1 rank on the institutional leaderboard.
- And a first: through direct outreach to the NSA, my high school became the first high school ever to participate in the program.
- CyberStart America (2022–2024)
- National Cyber Scholar with Honors, three consecutive years. The title goes to 600 of 30,000 students who seek to qualify: the top 2% of the national cybersecurity student funnel.
- In the top 1% of tens of thousands of participants.
- The maximum possible points, 147,600, in every program year.
- $12,000 in scholarships earned.
- GIAC Advisory Board: An invitation to the guidance community reserved for top scorers on SANS/GIAC certification exams.
- FBI TEAM Program: Chosen for the FBI's competitive Teen/Youth Engagement and Mentorship program, and mentored by Bureau personnel.
Every badge on this page can be checked.
- GIAC Security Essentials (GSEC) · GIAC Foundational Cybersecurity Technologies (GFACT)
- AP Scholar with Honors
- One of the only dual-award recipients (Business & Computer Science) in a graduating class of ~1,000
- Verified Member of the GitHub Developer Program
- Design: An experimental AI analysis environment, composed around strict isolation.
- Separation: The host system remains completely separate from the analysis environment.
- Containment: The AI operates inside a container that does not persist.
- Access: Kernel access is restricted. There is no path to the underlying OS.
Eclipse Shield: productivity analyzer with a hardened Flask backend
-
Product: A browser extension and Flask backend that quietly judge whether a site fits the mode of the moment: work, school, or personal.
-
Decision rules: Local allow and block rules decide first. Where no rule speaks, Gemini may be called.
-
Validation: A security test suite that passes 30 of 30 against the live server, beside a 33-test pytest suite.
-
AI Task Analysis: A Gemini integration that asks after context: goals, and current focus.
-
Security coverage: The full OWASP Top 10 (2021).
-
Security stack: UFW → Fail2ban → Nginx → Gunicorn → Flask security middleware.
-
Rate limiting: Redis-backed rate limiting.
-
Input validation: Careful validation against XSS, SQLi, and prompt injection.
-
Extension traffic: Guarded by CSRF tokens and request signing.
-
Testing: 50+ automated security tests, kept on the record.
-
Test coverage: Authentication bypass, injection, rate limiting, and XSS.
ShadowGuard AI: the library
- Scale: 584 projects: security tools and experiments, gathered into one library.
- Direction: Built with AI assistance, under my direction, and audited line by line.
- Origin: First published under the ShadowGuardAI organization.
- Current home: Being restored under the ShadowGuard-AI organization, repository by repository, each in its place.
- Catalogue: The full catalogue may be read on the org's repositories page.
- Spotify-To-YTMusic
- Custom-Linux-AV
- Hacking-Distributions-Trust-Analysis
- The full body of work began on the archive profile; it is arriving here repo by repo.
Earned as @CY83R-3X71NC710N; every claim below is linked to its source.
- Star History: Top Committer #8 of 2024 (Wayback Machine archive)
- Star History: Top 1000 Committers 2026: #150, with 13,288 commits (Wayback Machine archive)
- CodersRank: Top 1% of coders in the USA (below) (Wayback Machine archive)
Top 1% Coders USA: CodersRank
CodersRank Score 291.7 · Rank: Top 1% · Based on 159 repositories
S Rank Hacker · God Committer · God PR User · Ultra Celebrity · Super Repo Creator · Super Star, earned as @CY83R-3X71NC710N; the wall links to that profile.
- Spotify-To-YTMusic
- Brought back an unmaintained project.
- Patched the core authentication error.
- Added connection-stability features.
- Brought in four major community bug fixes.
- During the original author's absence, my fork became the community's de facto version.
- swayfx
- Mended a critical build failure in the Wayland compositor fork.
- Updated its Nix flake dependencies.
- Improved the development shell for every contributor.
- SillyTavern Extension
- Built a "heartbeat" mechanism.
- Fixed a persistent Web Speech API bug.
- The bug lived in a popular AI toolkit (16k+ stars).
- Cybersecurity: Offensive security, with red teaming, penetration testing, API security, OSINT, reverse engineering in Ghidra, system hardening, and digital forensics
- Development: Python, advanced; C, Nix, and Bash; web development; AI/ML tooling for LLM integration and API automation; Git and CI/CD
- Systems & Infrastructure: The internals of Linux, Windows, and macOS; custom OS development; cloud security; virtualization across VMware, Parallels, QEMU, and UTM; Docker; and networking, with VPNs and OpSec
Off the keyboard:
- I write, and THE COMMAND CHAIR is my book.
- I specialize in DJing and AI Human Sounding Soul Music Production, with the human soul at the center.
- I command classic sci-fi real-time strategy games.
- I keep up martial arts, fitness, and long bike rides.
- My listening and mixing range across dark techno, techno, UK drill, rap, R&B, grunge, pop, melancholic romantic dark academia, and melancholic ambient.
- My signature blend sets electronic music and UK drill in the same moment.
Commits from this account are authored under my GitHub noreply identity: no personal email, ever.