Pig-Tail · Offensive Security Engineer · Vulnerability Researcher · Red Teamer
Offensive security engineer and vulnerability researcher. I audit widely-used open-source and commercial software for credible, exploitation-defensible bugs and drive them through coordinated disclosure — attack-surface mapping → taint tracking → a working PoC → a defensible CVSS write-up. Comfortable across web/API stacks, C/C++ memory safety, Go/Rust/PHP/Python, and red-team tooling.
- 🔭 Classes I hunt: RCE & command/arg injection · auth/authz bypass, IDOR & tenant escape · SSRF · path traversal / zip-slip · unsafe deserialization · memory corruption · race/TOCTOU.
- 🧪 How I verify: local instance + benign PoC (sentinel / timing oracle), then an adversarial re-read to kill false positives. No theoretical reports.
- 🛡️ Background: 10+ years in offensive security — red team & ethical hacking (hacking since the early 2010s); red-team infrastructure & malware-dev tradecraft, and CVE research since 2017 (see certifications).
| CVE | Project | Vulnerability | GitHub |
|---|---|---|---|
| CVE-2026-14620 | webpack-dev-server |
webpack-dev-server vulnerable to cross-site request forgery via internal | advisory |
| CVE-2026-40936 | glpi-agent |
ToolBox plugin can allow unauthenticated path traversal leading to arbit | advisory |
| CVE-2026-42187 | glpi-agent |
Proxy plugin can allow arbitrary file write if local_store is enabled |
advisory |
| CVE-2026-45621 | glpi-agent |
MongoDB inventory module allows JavaScript injection via unescaped login | advisory |
| CVE-2026-46615 | glpi-agent |
Database inventory modules execute OS commands with unsanitized database | advisory |
| CVE-2026-48728 | glpi-inventory-plugin |
Job enumeration and status manipulation on Deploy, Collect, and ESX agen | advisory |
| CVE-2026-48730 | glpi-inventory-plugin |
Reflected XSS | advisory |
| CVE-2026-49285 | glpi-agent |
OS Command Injection in GLPI Agent ToolBox Results export via unsanitize | advisory |
| CVE-2026-52764 | glpi-agent |
MSSQL inventory module executes OS commands with unsanitized database na | advisory |
| CVE-2026-52765 | glpi-agent |
Oracle and DB2 inventory modules allow SQL injection in GLPI server-supp | advisory |
| CVE-2026-52768 | glpi-agent |
Deploy task Path Traversal in Tools::Archive | advisory |
| CVE-2026-53626 | glpi |
Arbitrary document read | advisory |
| CVE-2026-54697 | cbssh |
Excessive allocation and integer overflow in DER private-key parsing | advisory |
| CVE-2026-54764 | traefik |
ForwardAuth middleware leaks X-Forwarded-Port spoofing via untrusted X-F | advisory |
| CVE-2026-55422 | conda-forge |
Stored DOM XSS on conda-forge.org via unsanitized dangerouslySetInnerHTM | advisory |
| CVE-2026-55780 | NanaZip |
Uncaught exception / unbounded allocation in NanaZip .NET single-file Ex | advisory |
| CVE-2026-55781 | NanaZip |
Unbounded memory allocation (DoS) in NanaZip UFS parser via unvalidated | advisory |
| CVE-2026-55782 | NanaZip |
Unbounded memory allocation (DoS) in NanaZip WebAssembly parser via atta | advisory |
| CVE-2026-55783 | NanaZip |
NULL pointer dereference in Extract() of all seven NanaZip custom archiv | advisory |
| CVE-2026-57562 | readest |
Subscription/entitlement hijack: /api/stripe/check binds any paid Checko | — |
| CVE-2026-57565 | readest |
Cross-tenant object write via unsanitized fileName in /api/storage/uploa | — |
| CVE-2026-57566 | readest |
Unauthenticated SSRF / open request proxy in /api/opds/proxy | — |
| CVE-2026-57567 | readest |
Unscoped Tauri IPC download_file/upload_file allow arbitrary local file | — |
| CVE-2026-59249 | mint |
HTTP/1 chunk-size desync in Mint via Integer.parse/2 sign tolerance | advisory |
| CVE-2026-61699 | nebula-mesh |
Certificate revocation is never enforced at the mesh: nebula-agent drops | advisory |
| CVE-2026-62263 | OpenAM |
OpenAM WebAuthn Java deserialization RCE via ObjectInputFilter depth | advisory |
| CVE-2026-62366 | opendj |
OpenDJ Unauthenticated stack exhaustion when decoding an LDAP search fil | advisory |
| CVE-2026-62373 | opendj |
OpenDJ JMX MBean-argument deserialization without a serial filter | advisory |
| CVE-2026-62375 | opendj |
OpenDJ Unbounded VLV offset array allocation → memory-exhaustion DoS | advisory |
| CVE-2026-62989 | shopper |
Missing authorization on product variant DeleteAction/DeleteBulkAction i | advisory |
| CVE-2026-63202 | netty-incubator-codec-ohttp |
BinaryHttpParser: Unauthenticated CPU-exhaustion DoS via infinite loop i | advisory |
| CVE-2026-63432 | horilla-hr |
Server-Side Template Injection (SSTI) in Mail Preview Endpoints Allows A | advisory |
| CVE-2026-63444 | glpi-agent |
OS Command Injection via server-controlled archive filename in Deploy ta | — |
| CVE-2026-63505 | probo |
Cross-tenant IDOR via unvalidated FK references | advisory |
| CVE-2026-64662 | statamic |
Missing authorization on navigation endpoint allows disclosure of restri | advisory |
| CVE-2026-67433 | monitoring-plugins |
Symlink following in logfile legacy database migration | advisory |
| CVE-2026-67435 | monitoring-plugins |
fetch() forwards credential headers across a cross-origin redirect | advisory |
| CVE-2026-67436 | monitoring-plugins |
SSRF and auth-token disclosure via unvalidated @odata.id link in redfish | advisory |
| CVE-2026-71315 | nuxt |
Nuxt route rules silently dropped for mixed-case paths, bypassing appMid | advisory |
| CVE-2026-71537 | Paymenter |
Credit-refund double-spend race condition in service downgrade (doUpgrad | — |
| CVE-2026-71859 | egroupware |
Incomplete fix for GHSA-8737: eTemplate Widget::expand_name() eval sanit | — |
CVE records are public at cve.org; some GitHub advisories are resolved privately (no public advisory page).
| Project | Vulnerability | CWE | Advisory |
|---|---|---|---|
NetCoreToolService |
Unauthenticated RCE via argument injection into 'dotnet new' in NetCoreToolServi | CWE-88 | GHSA-f5m5-jfmq-ghpx |
flyto-core |
Arbitrary file write via unguarded data./file. modules (incomplete fix of GHSA | CWE-22 | GHSA-p34x-fmph-9fjx |
GitPython |
Arbitrary local file content disclosure via [include] directive in untrusted .gi | CWE-73/CWE-200 | GHSA-7833-fr7j-v32q |
GitPython |
Dormant multi-line git-config values are corrupted into live injected directives | CWE-88/CWE-94 | GHSA-284h-m62q-gf8w |
GitPython |
clone_from()/clone() omit --separate-git-dir from unsafe_git_clone_options, enab | CWE-22/CWE-73 | GHSA-8mcc-hrx5-hvxc |
kirby |
Access to image files and limited access to JSON files outside of the site root | CWE-22 | GHSA-9vx2-j98c-p72w |
nodemailer |
Message-level raw option bypasses disableFileAccess/disableUrlAccess, enabling a | CWE-73/CWE-918 | GHSA-p6gq-j5cr-w38f |
probo |
Account takeover via OIDC login: the continue redirect hands the victim's root-s | CWE-384/CWE-601 | GHSA-r9mf-88r7-g6j9 |
probo |
Vertical privilege escalation: an organization ADMIN can mint an OWNER membershi | CWE-269/CWE-863 | GHSA-cppp-g98f-gfpp |
python-statemachine |
SCXML reads arbitrary local files when loading an untruste | CWE-22/CWE-200 | GHSA-fj3w-533r-fvf6 |
saml2 |
Incomplete fix of CVE-2026-49283: unsigned embedded Response bypasses HTTP-Artif | CWE-287/CWE-347 | GHSA-r7hw-jx6r-756g |
flyto-core |
SSRF guard bypass via DNS rebinding (validate_url_ssrf resolves-then-connects wi | CWE-918 | GHSA-6pm8-6f34-9v3g |
surrealdb |
SSRF via JWKS URL — Redirect Following in JWT Key Fetch | CWE-918 | GHSA-h5rg-8p7f-47g2 |
glpi-agent |
Oracle inventory module uses unvalidated process username in shell su command | CWE-78 | GHSA-vwv6-85p7-mjvc |
glpi-agent |
Collect task compiles server-controlled regular expression without validation | CWE-1333 | GHSA-mgcf-xgv7-5w4x |
glpi-agent |
Stored XSS via SNMP community/authprotocol credential fields in ToolBox plugin | CWE-79 | GHSA-cwg9-jj5m-pq4q |
openproject |
Content Security Policy img-src wildcard enables cross-origin pixel tracking and | CWE-200 | GHSA-m5p8-h274-f7w8 |
probo |
Broken access control in public e-signature API: any trust-center visitor can co | CWE-639/CWE-862 | GHSA-22xj-f767-ppw6 |
probo |
Unauthenticated cross-tenant and hidden-item disclosure via Query.node in the pu | CWE-284/CWE-639 | GHSA-w23w-f7v2-625w |
- wolfSSL — X.509 DNS name-constraint bypass (CWE-295) · A leaf carrying a
registeredID(oriPAddress) SAN setsaltNames != NULL, which suppresses the CN-as-DNS name-constraint check inConfirmNameConstraints()while the CN is still used to authenticate the peer — a DNS-name-constrained sub-CA can impersonate arbitrary hosts. Incomplete fix / regression of CVE-2026-6731. Reported with a working PoC; reproduced and fixed by wolfSSL in PR #10837. (CVE pending.) - wolfSSL — PKCS7 / DTLS 1.3 hardening · Two PKCS7 non-streaming bounds over-reads (EnvelopedData IV, AuthEnvelopedData authTag) + an unbounded DTLS 1.3
WriteDupACK-list growth (memory-exhaustion DoS). Fixed & merged in PR #10833. - Microsoft Windows — StorSvc RPC EoP · The Storage Service registers its ALPC/RPC interface (
44d1520b-…) with a NULL security callback and NULL security descriptor, so any unprivileged local user can invoke all 36 procedures.SvcTriggerStorageCleanupdrivesStorSvc(SYSTEM) intoCreateProcessW("cleanmgr.exe", …)without impersonating the caller → SYSTEM process creation from a standard user (missing authorization, CWE-285). Reported to MSRC — Case 111782 (VULN-180255). (Related tooling: alpc-toolkit.) - OpenStreetMap · Reported and fixed several issues in the OSM website, publicly credited by the project: TOTP-cookie handling, CSP rules, and a private-message rate-limit bypass — PR #7045 · #7046 · #7047 · announcement.
138+ further findings reported across 67+ projects are either resolved privately (no public advisory page) or under active coordinated disclosure / vendor embargo — including memory-safety bugs in widely-used engines, unauth secret-disclosure and RCE chains, and supply-chain issues. Details are withheld until each vendor publishes; they surface here automatically on disclosure.
| Repo | What it is |
|---|---|
| alpc-toolkit | Rust toolkit for Windows ALPC/RPC attack-surface recon |
| Mythic-agent-rust | Mythic C2 agent implemented in Rust |
| HuntingFavicoShodan | Find phishing sites by favicon hash via Shodan |
| ReconToolTop · Recond_subdomains | Subdomain recon (alive hosts, ports, no API) |
| Cert | 📜 Certifications & training (indexed) |
| GLPI SNMP-scan PoC | 📓 Gist — PoC for unauthenticated SNMP network scanning in GLPI Agent ToolBox (CWE-918) |
→ full indexed set (58 certificates) in Pig-Tail/Cert.
Coordinated disclosure / collaboration → jorge@jmilla.es · @jgonzalezmilla
