Exploit-DB matches
For every finding that looks version-specific (detected software + version) or CVE-adjacent, Pentestas pulls up to 5 ranked Exploit-DB candidates. The goal: "what public exploit should I read first if I want to understand the blast radius of this finding?"
Ranking inputs
Three match types, combined:
CVE-exact
Finding claims CVE-YYYY-NNNNN; an Exploit-DB entry lists the same CVE. Highest confidence. If the finding is real, the EDB entry is a drop-in PoC.
CPE + version
Finding detected product + version. EDB entry's platform + title matches the product. EDB date_published vs. the version's release history is used to weed out exploits that came out before the version existed.
Product keyword
Finding mentions a product (WordPress, phpMyAdmin, Confluence, β¦) without a CVE. Keyword search against EDB title. Lowest confidence β useful as a research pointer.
Ranking outputs
Each candidate carries:
- edb_id β numeric ID. Click to open
exploit-db.com/exploits/<id>. - confidence β 0.0β1.0, combining match type + age-decay + platform alignment + verified-flag.
- match_type β
cve-exact/cpe-version/product-keyword. - rationale β short human-readable "why this ranks where it does".
- type β
local,remote,webapps,dos,shellcode,papers. - platform β Linux, Windows, PHP, etc.
- verified β EDB's own verified flag (they confirmed the exploit works).
- date_published β public release.
- cves β associated CVE list.
Reading the rank list
Sort is descending by confidence. The top candidate is usually the one to read first. If the top two are cve-exact / verified:true / date_published within 6 months of your version's release, you probably have a practical exploit available.
How Pentestas uses the match internally
- The AI narrative layer reads the top matches and weaves them into the impact paragraph ("CVE-2024-NNNN against Apache 2.4.49 is public; weaponised exploits exist").
- Executive reports include the top 3 in the per-finding detail page.
- The matcher results are stored in the
findings.exploit_candidatesJSONB column; you can query them via the API for your own tooling.
Updating the database
Pentestas mirrors Exploit-DB nightly via a scheduled Celery task. Freshness is usually <24 hours. Enterprise customers can enable an even-tighter hourly refresh.
Pitfalls
- Matching on version alone is noisy. The confidence score demotes keyword-only matches, but you still need to read the rationale before acting.
- An EDB entry is not proof of vulnerability. It's proof that someone at some point had a working exploit against a version that may or may not match your config.
- Not all CVEs have EDB entries. Especially newer CVEs, or vendor-disclosure-only issues. Absence of an EDB hit doesn't mean you're safe.
See also
- Severity scale β how EDB matches influence severity
- Network scan β where most CVE-exact hits come from