Skip to content

feat: add WordPress HTTP fingerprinter#147

Open
kanbru wants to merge 1 commit intomainfrom
wordpress-fingerprintx
Open

feat: add WordPress HTTP fingerprinter#147
kanbru wants to merge 1 commit intomainfrom
wordpress-fingerprintx

Conversation

@kanbru
Copy link

@kanbru kanbru commented Mar 13, 2026

Summary

  • Add WordPress CMS fingerprinter to Nerva's HTTP fingerprinting pipeline
  • Multi-signal detection: Link header (api.w.org), body markers (wp-content/, wp-includes/), REST API probe (/wp-json/wp/v2/)
  • Version extraction from <meta name="generator"> tag with regex validation against CPE injection
  • Plugin/theme slug detection from wp-content/plugins/ and wp-content/themes/ paths stored in metadata
  • CPE: cpe:2.3:a:wordpress:wordpress:{version}:*:*:*:*:*:*:*

Motivation

WordPress CMS is widespread in the Allegion estate (39+ hosts across brand domains) but invisible to Nerva. Plugin-level CVEs (like Bricks Builder CVE-2024-2473) can't CPE-match without technology detection.

Test plan

  • 18 unit tests (Name, ProbeEndpoint, Match, Fingerprint_Valid, Fingerprint_Invalid, BuildCPE, Integration)
  • CPE injection prevention validated (four-component version rejected by regex)
  • Live validation against WordPress 6.9.4 Docker instance — version, theme, and CPE correctly extracted
  • Full fingerprinters test suite regression check passes
  • go build, go vet clean

🤖 Generated with Claude Code

Detect WordPress CMS via multi-signal approach:
- Link header containing api.w.org (most reliable passive signal)
- Body markers: wp-content/, wp-includes/ paths
- Active probe: /wp-json/wp/v2/ REST API namespace confirmation
- Version extraction from <meta name="generator"> tag
- Plugin/theme slug detection from wp-content paths

Validated against live WordPress 6.9.4 Docker instance.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chatgpt-codex-connector
Copy link

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant