CVE-2025-15551
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedThe response coming from TP-Link Archer MR200 v5.2, C20 v5 and v6, TL-WR850N v3, and TL-WR845N v4 for any request is getting executed by the JavaScript function like eval directly without any check. Attackers can exploit this vulnerability via a Man-in-the-Middle (MitM) attack to execute JavaScript code on the router's admin web portal without the user's permission or knowledge.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceThe affected TP-Link routers (Archer MR200, C20, TL-WR850N, TL-WR845N) directly execute incoming HTTP responses through JavaScript's eval() function without any validation. An attacker with MitM positioning can inject malicious JavaScript code that executes within the router's admin web interface context.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.
NVD · CPE data< 250917< 250630< 0.9.1_Build251205< 251031CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- High
- Privileges
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Identify the router modelLocate the model number on the router's physical label or access the admin web interface and look for the model information typically displayed in the footer or status pageAffected if The router is an Archer MR200, Archer C20, TL-WR850N, or TL-WR845N model
-
Determine the installed firmware versionLog into the router's admin web interface, navigate to the Status or System menu, and locate the firmware version field; alternatively, check the physical label if the version is printed thereAffected if The firmware version is below 250917 for MR200, below 250630 for C20, below 0.9.1_Build251205 for TL-WR850N, or below 251031 for TL-WR845N
-
Verify admin interface accessibilityAttempt to access the router's admin interface via HTTP (typically http://192.168.0.1 or http://192.168.1.1) in a web browserAffected if The admin interface loads successfully over HTTP, indicating the web management interface is active and reachable
-
Check for HTTPS enforcementAttempt to access the admin interface via HTTPS (https://192.168.0.1 or https://192.168.1.1) and observe whether the connection succeeds or failsAffected if The admin interface is only accessible over HTTP and not HTTPS, making MitM positioning viable for exploiting the eval() vulnerability
Your router is affected if it is one of the four listed models running a firmware version below the specified threshold and the admin interface is accessible over HTTP without HTTPS enforcement.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scoped0.9.1_Build251205250630250917
Replace unsafe eval() usage with secure parsing; implement response validation and integrity checks; enable HTTPS for the admin interface to prevent MitM attacks.
Archer MR200: v250917 or later; Archer C20: v250630 or later; TL-WR850N: v0.9.1_Build251205 or later; TL-WR845N: v251031 or later
- 1. Identify the exact model number of your TP-Link router (Archer MR200, Archer C20, TL-WR850N, or TL-WR845N).
- 2. Visit the official TP-Link support website at www.tp-link.com and navigate to the Support > Firmware Download section.
- 3. Enter your router's model number to access the firmware download page.
- 4. Download the latest firmware version for your specific model: Archer MR200 requires version 250917 or later; Archer C20 requires version 250630 or later; TL-WR850N requires version 0.9.1_Build251205 or later; TL-WR845N requires version 251031 or later.
- 5. Access your router's web admin interface by entering the router's IP address in a web browser.
- 6. Navigate to the System Tools > Firmware Upgrade (or Backup & Restore) section.
- 7. Click the Browse button and select the downloaded firmware file.
- 8. Click the Upgrade button and wait for the firmware upload and installation to complete (do not power off the router during this process).
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation4.0 h
- Implementation16.0 h
- Testing8.0 h
- Review / QA4.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $8,960.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2025-15551 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2025-15551 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data