34 CVEsPublished Oct 2026 →

Security findings, proven before they reach you.

An autonomous agent that finds new vulnerabilities in your code and proves each one by running the exploit. If it doesn't reproduce, you never see it. It has already been credited on 34 CVEs in open source.

Findings4 investigated · 3 reproduced · 1 refuted

InvestigatedStatus

OS command injection in gitDiff()

CWE-78CVE-2026-110634585k weekly downloadsfixed in 2.0.7
26var gitHashCmd1 = 'printf ' + JSON.stringify(str1) + ' | git ' + gitDir + ' hash-object -w --stdin'
27var gitHashCmd2 = 'printf ' + JSON.stringify(str2) + ' | git ' + gitDir + ' hash-object -w --stdin'
28
29var gitHashObj1 = exec(gitHashCmd1, {silent: true})
// JSON.stringify wraps str1 in double quotes. $( ) still expands inside them.
Attackcanary created

gitDiff("$(touch $CANARY)", "b")

Negative controlno canary

gitDiff("hello", "b")

ReproducedReported to the maintainer with a patch. Merged and released in 2.0.7.

Real findings from the disclosure record. Code is the vulnerable upstream source.

40advisories published: 34 CVEs and 6 GitHub advisories
356Mweekly downloads across the affected packages
21advisories with a fixed release upstream
100+more reports with maintainers in coordinated disclosure

How it works

A finding is a claim. We make the claim run.

01

Trace

Interprocedural taint analysis follows untrusted input across files and call boundaries to the call that can hurt you.

source str1 gitDiff() flow gitHashCmd1 index.js:26 sink exec() index.js:29
02

Exploit

An agent checks the path is reachable from the public API, writes a proof of concept, and runs it in a sandbox against the published package.

fetch published artifact attack str1 = "$(touch $CANARY)" result canary created
03

Verify

A benign input goes through the same sink in the same session. If the result can't tell the two apart, the finding is refuted, not reported.

control str1 = "hello" result no canary verdict reproduced

Why it matters

Most tools hand you maybes. AploSec hands you runs.

A typical scanner report

  • A rule matched a pattern somewhere in the code
  • Severity is inferred from the rule, not the app
  • Your team triages which ones are real
  • False positives erode trust in every alert after

An AploSec finding

  • The exploit was executed, and you can rerun it
  • A negative control ran through the same sink
  • Suspected findings that don't reproduce are dropped, with the reason
  • The trace, proof of concept and run ship together

Disclosures

Found by AploSec. Disclosed upstream.

Sorted by weekly downloads. Each CVE has a page with the evidence and references.

AdvisoryPackageWeeklyEcosystemStatus
CVE-2026-112366picomatchReDoS via repeated extglob patterns316MnpmNo fix listed→ CVE-2026-112307sqlparsePHP code injection via output_format php28MPyPINo fix listed→ GHSA-9jhj-wvmw-cfx5i18next-http-backendProtocol-relative URL via namespace, bypass of an earlier fix2.8MnpmFixed 4.0.3→ CVE-2026-114491pdfmakeLocal file policy bypass via SVG images1.6MnpmFixed 0.3.12→ CVE-2026-111171web3SSRF via IPv4-mapped IPv6 in CCIP Read1.2MPyPINo fix listed→ CVE-2026-112310docling-coreLocal file disclosure via plain path ImageRef1.2MPyPIFixed 2.103.0→ CVE-2026-112712@fastify/middieAuth middleware bypass via scope prefix1.2MnpmFixed 9.3.6→ CVE-2026-111172@casl/abilityPrototype pollution via rule condition keys994knpmFixed 7.0.2→ CVE-2026-110642xhtml2pdfCommand injection via startViewer File Name884kPyPIFixed 0.2.19→ CVE-2026-110634git-diffCommand injection via gitDiff Input Strings585knpmFixed 2.0.7→ CVE-2026-112308crewai-toolsSSRF via SeleniumScrapingTool459kPyPINo fix listed→ CVE-2026-112363crawl4aiSSRF bypass via URL userinfo316kPyPINo fix listed→ CVE-2026-111170kedro-datasetsPath traversal via absolute plot name272kPyPINo fix listed→ CVE-2026-112309@rvf/set-getPrototype pollution via form field names160knpmFixed 7.0.4→ GHSA-2rg9-wxfw-wrr7@pdfme/commonSSRF guard bypass via IPv4-mapped IPv6, incomplete fix117knpmFixed 6.2.6→ CVE-2026-110645video-stitchCommand injection via concat() and cut()43knpmFixed 2.0.0-beta.1→ GHSA-g5px-mcqp-3ghpbillboard.jsXSS via legend template, sanitize bypass28knpmFixed 4.1.3→ CVE-2026-110644nodejs-whisperCommand injection via convertToWavType11knpmNo fix listed→ CVE-2026-110635webp-converterCommand injection via File Names and Options10knpmFixed 3.0.0→ GHSA-ff5q-5r4v-fw4vmcp-from-openapiAuth header forwarded on cross-origin redirect8knpmFixed 2.9.0→ CVE-2026-110643transcribe2textsCommand injection via transcribeAudio audioPath7knpmNo fix listed→ CVE-2026-111713tarteaucitronjsXSS via data- attribute guard mismatch7knpmFixed 1.37.0→ CVE-2026-110640whisper-nodeCommand injection via filePath and language6knpmNo fix listed→ GHSA-7wpf-ch8f-5f4xsignalk-serverSSRF via app store icon fetcher3knpmNo fix listed→ CVE-2026-110646snappdfCommand injection via setUrl()2kPackagistFixed 6.1.0→ CVE-2026-112306@nocobase/plugin-collection-sqlSQL injection via sqlCollection:setFields2knpmNo fix listed→ GHSA-h34c-q33w-3r7qhydra-ray-launcherConfig-controlled module import via Ray resolver1kPyPIFixed 1.2.2→ CVE-2026-110650thumbnailCommand injection via generate_thumbnail File Paths759PyPINo fix listed→ CVE-2020-37282office-converterCommand injection via fileName in generatePdf120npmNo fix listed→ CVE-2026-110649stillsCommand injection via Media File Names99npmFixed 25.24.2→ CVE-2026-110641@runnerty/executor-decompressCommand injection via Archive File Name19npmNo fix listed→ CVE-2026-110647turnpressCommand injection via Crafted .docx File Names12npmNo fix listed→ CVE-2026-110637buildebooksCommand injection via kindlegen EPUB File Name6npmFixed 0.2.2→ CVE-2026-110638doc-recogCommand injection via DocData._readPDF File Path6npmNo fix listed→ CVE-2026-110639@mborne/extractCommand injection via archivePath and targetDir3npmFixed 0.2.1→ CVE-2026-110648@offactory/compress-fontsCommand injection via Font File Names2npmFixed 1.1.1→ CVE-2026-111714tarteaucitronjsReDoS via unescaped cookie name<10npmFixed 1.37.0→ CVE-2026-112305Semaphore UIRCE via Ansible variable overriden/aGoNo fix listed→ CVE-2026-114492gin-vue-adminPath traversal in removePluginn/aGoNo fix listed→ CVE-2026-114493LocalAISSRF guard bypass via redirectsn/aGoNo fix listed→

100+ more reports are with maintainers in coordinated disclosure. Each is listed here once its advisory is public.

Point it at your code.

AploSec is in private access. Tell us what you ship and we'll run it on a repository with you.