Vigilbase CVEConnect your agent

DrayTek Vigor Routers OS Command Injection Vulnerability

Exploited · KEV 2025-05-15CVE-2024-12987CWE-78CWE-77

Exploited since 2025-05-15. No WAF vendor names it yet. Our CRS test: blocked.

Edge rules
0/8
Our test
Blocked
CVSS
6.9
EPSS
98.2% Top 0.1%
Posts, 14d
02026-10-20: 0 posts2026-10-21: 0 posts2026-10-22: 0 posts2026-10-23: 0 posts2026-10-24: 0 posts2026-10-25: 0 posts2026-10-26: 0 posts2026-10-27: 0 posts2026-10-28: 0 posts2026-10-29: 0 posts2026-10-30: 0 posts2026-10-31: 0 posts2026-11-01: 0 posts2026-11-02: 0 posts
Published
2024-12-27
A vulnerability, which was classified as critical, was found in DrayTek Vigor2960 and Vigor300B 1.5.1.4. Affected is an unknown function of the file /cgi-bin/mainfunction.cgi/apmcfgupload of the component Web Management Interface. The… More

A vulnerability, which was classified as critical, was found in DrayTek Vigor2960 and Vigor300B 1.5.1.4. Affected is an unknown function of the file /cgi-bin/mainfunction.cgi/apmcfgupload of the component Web Management Interface. The manipulation of the argument session leads to os command injection. It is possible to launch the attack remotely. The exploit has been disclosed to the public and may be used. Upgrading to version 1.5.1.5 is able to address this issue. It is recommended to upgrade the affected component.

Ask Vigil

AI · answers from this page
Ask about CVE-2024-12987: who's covered, what to patch first, how vendors compare. I cite sources and won't help with attacks.

Workers AI (Llama 3.3). Can be wrong: check the cited source.

Severity, decoded

CVSS 4.0
Medium · 6.9 / 10

Exploitable over the network, with no privileges and no user interaction, leading to low impact on confidentiality, integrity and availability.

Over the internetNo login neededNo user actionWorks reliably
How the score is built11 metrics
  • Attack vectorAn attacker can reach it over the internet; no access to your network needed.
    Network
  • Attack complexityNo built-in defences have to be bypassed; the attack works reliably.
    Low
  • Attack requirementsThe attack works without any special deployment or timing conditions.
    None
  • Privileges requiredNo account or login is needed.
    None
  • User interactionNo one has to click or open anything; the attack works on its own.
    None
  • Confidentiality impact (vulnerable system)An attacker can read some data, but has no control over what they get.
    Low
  • Integrity impact (vulnerable system)An attacker can change some data, but with limited control or limited effect.
    Low
  • Availability impact (vulnerable system)An attacker can slow the component down or interrupt it now and then.
    Low
  • Confidentiality impact (other systems)Other systems' data is not exposed.
    None
  • Integrity impact (other systems)Other systems' data cannot be changed.
    None
  • Availability impact (other systems)Other systems keep working normally.
    None
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
CISA's assessmentSSVC, from the CVE record
ExploitationActive

Attackers are exploiting this in the wild.

AutomatableYes

Attackers can script the attack end to end and hit many targets at once.

Technical impactTotal

A successful attack gives full control over the affected software or all of its data.

Public exploits

1 found
0 Metasploit0 Exploit-DB1 Scanner template0 GitHub PoCs

Links are to third-party code: never run it outside an isolated lab.

Timeline

  1. 2024-12-27
    CVE published
    CVE List
  2. 2025-05-15
    Added to CISA KEV
    Confirmed exploitation in the wild
  3. 2026-11-02
    Our test: OWASP Core Rule Set blocked it
    paranoia level 1, anomaly threshold 5, default CRS settings
  4. 2026-11-02
    Our test: OWASP Core Rule Set blocked it
    paranoia level 2, anomaly threshold 5, default CRS settings

Social

2026-10-20: 0 posts2026-10-21: 0 posts2026-10-22: 0 posts2026-10-23: 0 posts2026-10-24: 0 posts2026-10-25: 0 posts2026-10-26: 0 posts2026-10-27: 0 posts2026-10-28: 0 posts2026-10-29: 0 posts2026-10-30: 0 posts2026-10-31: 0 posts2026-11-01: 0 posts2026-11-02: 0 posts

No posts seen yet on X, Bluesky, Mastodon, Hacker News or GitHub.

Vendor statements

Quoted
CloudflareWAF Managed RulesBefore feed history

The CVE predates the oldest entry in this vendor's public feed, so a rule may exist that we cannot see.

AWSAWS WAF Managed RulesNo public claim

We found no public statement from this vendor naming this CVE. That is not proof of no protection: generic rules may still catch it. AWS often describes a vulnerability without naming its CVE (for example "Log4j"). We count only entries that name the CVE, so AWS coverage is understated.

Microsoft AzureFront Door and Application Gateway WAF (DRS)No public claim

We found no public statement from this vendor naming this CVE. That is not proof of no protection: generic rules may still catch it. The rule tables name CVEs but carry no dates, so Azure is left out of every time-to-rule figure.

Google CloudCloud Armor preconfigured WAF rulesNo public claim

We found no public statement from this vendor naming this CVE. That is not proof of no protection: generic rules may still catch it. Google names few CVEs: the release notes start in May 2024 and the rules reference lists CVEs without dates. Its cve-canary rules are opt-in.

FastlyNext-Gen WAF virtual patchesBefore feed history

The CVE predates the oldest entry in this vendor's public feed, so a rule may exist that we cannot see.

F5Attack signatures (Distributed Cloud WAF)No public claim

We found no public statement from this vendor naming this CVE. That is not proof of no protection: generic rules may still catch it. Each signature lists the CVEs it references, with its id and date. F5 does not state a default action; signatures enforce once staging ends in your policy.

AkamaiApp & API Protector (Adaptive Security Engine)No public source

This vendor publishes no machine-readable rule changelog we can check.

OWASP CRSCore Rule Set (open source, used inside many WAFs)No public claim

We found no public statement from this vendor naming this CVE. That is not proof of no protection: generic rules may still catch it. CRS rarely names CVEs: it relies on generic detections. Our own lab measures what it actually blocks.