Evidence dossier

CVE-2020-15415

On DrayTek Vigor3900, Vigor2960, and Vigor300B devices before 1.5.1, cgi-bin/mainfunction.cgi/cvmcfgupload allows remote command execution via shell metacharacters in a…

Exploited in the wild (CISA KEV since Sep 30, 2024). NVD reports CVSS 3.1 9.8. EPSS estimates 84.5% exploit likelihood as of Aug 27, 2026.

87.090.3Priority evidence range
Evidence current through Aug 27, 2026, 6:09 PM UTC

As of Aug 27, 2026

Normalized restatement

On DrayTek Vigor3900, Vigor2960, and Vigor300B devices before 1.5.1, cgi-bin/mainfunction.cgi/cvmcfgupload allows remote command execution via shell metacharacters in a filename when the text/x-python-script content type is used, a different issue than CVE-2020-14472.

State
PUBLISHED
Published
Jun 30, 2020
Updated
Oct 21, 2025
Evidence coverage
91%

Evidence chronology

What was known when

Download this view's receipt →
  1. Source dateSource date omittedFirst observed by CASCA
    CISA-ADP

    Record text: CISA ADP Vulnrichment

    Inspect raw assertion
    Field
    container
    Value
    CISA ADP Vulnrichment
    Original evidence ↗
  2. Source dateSource date omittedFirst observed by CASCA
    CVE Program

    Record text: CVE Program Container

    Inspect raw assertion
    Field
    container
    Value
    CVE Program Container
    Original evidence ↗
  3. Source dateSource date omittedFirst observed by CASCA
    mitre

    Record text: On DrayTek Vigor3900, Vigor2960, and Vigor300B devices before 1.5.1, cgi-bin/mainfunction.cgi/cvmcfgupload allows remote command execution via shell metacharacters in a filename when the text/x-python-script content type is used, a different issue than CVE-2020-14472.

    Inspect raw assertion
    Field
    container
    Value
    On DrayTek Vigor3900, Vigor2960, and Vigor300B devices before 1.5.1, cgi-bin/mainfunction.cgi/cvmcfgupload allows remote command execution via shell metacharacters in a filename when the text/x-python-script content type is used, a different issue than CVE-2020-14472.
    Original evidence ↗
  4. Source dateFirst observed by CASCA
    CISA KEV

    Exploitation cataloged: DrayTek Multiple Vigor Routers OS Command Injection Vulnerability

    Inspect raw assertion
    Field
    observed_exploitation
    Value
    DrayTek Multiple Vigor Routers OS Command Injection Vulnerability
    Original evidence ↗
  5. Source dateFirst observed by CASCA
    FIRST EPSS

    EPSS score: 84.48% probability · 99.68th percentile

    Inspect raw assertion
    Field
    model_probability
    Value
    Probability 0.844800000000; percentile 0.996830000000
    Original evidence ↗
ExploitationCatalog member

CISA KEV · catalog date Sep 30, 2024 · first observed Jul 19, 2026

Exploit likelihood84.48%

FIRST EPSS · score date Aug 27, 2026 · 99.7th percentile · first observed Aug 27, 2026

SeverityCVSS 9.8

NVD · CVSS 3.1 · first observed Jul 19, 2026 · same-version scores align in this snapshot

Evidence detail

Source limits and decisions

Why each evidence state has this value

casca-unknown-reasons-v1
Exploitation statusEvidence supported

Eligible evidence is present for this bounded claim.

Revision
evidence-policy-v1.1.0
Cutoff
Aug 27, 2026
Resolution
None
Exploit likelihoodEvidence supported

Eligible evidence is present for this bounded claim.

Revision
evidence-policy-v1.1.0
Cutoff
Aug 27, 2026
Resolution
None
Severity assessmentEvidence supported

Eligible evidence is present for this bounded claim.

Revision
casca-direct-cvss-eligibility-v1
Cutoff
Aug 27, 2026
Resolution
None
Affected productsSource-reported scope

The cited source assertion is retained while canonical product linkage remains open.

Revision
casca-factor-d-obligations-v1
Cutoff
Aug 27, 2026
Resolution
Resolve identity

Source comparison

Who said what

CISA-ADPIndependent enrichment
Record text

CISA ADP Vulnrichment

Inspect raw assertion
Field
container
Value
CISA ADP Vulnrichment
Source dateSource date omittedFirst observed by CASCAOriginal evidence ↗
CVE ProgramDerivative copy
Record text

CVE Program Container

Inspect raw assertion
Field
container
Value
CVE Program Container
Source dateSource date omittedFirst observed by CASCAOriginal evidence ↗
mitreOriginal assertion
Record text

On DrayTek Vigor3900, Vigor2960, and Vigor300B devices before 1.5.1, cgi-bin/mainfunction.cgi/cvmcfgupload allows remote command execution via shell metacharacters in a filename when the text/x-python-script content type is used, a different issue than CVE-2020-14472.

Inspect raw assertion
Field
container
Value
On DrayTek Vigor3900, Vigor2960, and Vigor300B devices before 1.5.1, cgi-bin/mainfunction.cgi/cvmcfgupload allows remote command execution via shell metacharacters in a filename when the text/x-python-script content type is used, a different issue than CVE-2020-14472.
Source dateSource date omittedFirst observed by CASCAOriginal evidence ↗
CISA KEVOriginal assertion
Exploitation cataloged

DrayTek Multiple Vigor Routers OS Command Injection Vulnerability

Inspect raw assertion
Field
observed_exploitation
Value
DrayTek Multiple Vigor Routers OS Command Injection Vulnerability
Source dateFirst observed by CASCAOriginal evidence ↗
FIRST EPSSOriginal assertion
EPSS score

84.48% probability · 99.68th percentile

Inspect raw assertion
Field
model_probability
Value
Probability 0.844800000000; percentile 0.996830000000
Source dateFirst observed by CASCAOriginal evidence ↗

Applicability

Cited product scope

Trace impact →
6Underlying assertions
6Canonical products
3Target assertions
3Constraint assertions

Grouped from 6 configuration nodes in this exact snapshot. Visual grouping is navigational; asset exposure and root cause require cited evidence.

Identity source boundaries
  • Cpe dictionary1,775,266 records · observed through 2026-07-21T06:45:29.809Z27d65b0f-b718-4b4f-bb79-c47c68d09dfa
  • Cpe match643,502 records · observed through 2026-07-21T08:13:17.697Z955dae73-7302-438b-aee1-058d7cc5d48e

10 scope groups

CISA-ADP · source asserteddraytekvigor2960_firmwareDirect source scope
Affected: 0 to before 1.5.1 (custom comparison)
Source-reported scope

Canonical linkage remains open; the cited source assertion is retained below.

Inspect raw assertion[{"status": "affected", "version": "0", "lessThan": "1.5.1", "versionType": "custom"}]
CISA-ADP · source asserteddraytekvigor300b_firmwareDirect source scope
Affected: 0 to before 1.5.1 (custom comparison)
Source-reported scope

Canonical linkage remains open; the cited source assertion is retained below.

Inspect raw assertion[{"status": "affected", "version": "0", "lessThan": "1.5.1", "versionType": "custom"}]
CISA-ADP · source asserteddraytekvigor3900_firmwareDirect source scope
Affected: 0 to before 1.5.1 (custom comparison)
Source-reported scope

Canonical linkage remains open; the cited source assertion is retained below.

Inspect raw assertion[{"status": "affected", "version": "0", "lessThan": "1.5.1", "versionType": "custom"}]
mitre · source assertedn/an/aDirect source scope
Affected: n/a
Source-reported scope

Canonical linkage remains open; the cited source assertion is retained below.

Inspect raw assertion[{"status": "affected", "version": "n/a"}]
NVD CPE · HARDWAREdraytekvigor2960Environmental constraint · 1 assertions
Version not applicableCanonical identity product-2b3f74f15f3fa5c878443a85c4125d958db8fc2ea545075c38f9a4a97d0bab2bLinked exact
Scope constrained
Inspect raw assertion
  1. cpe:2.3:h:draytek:vigor2960:-:*:*:*:*:*:*:*
    Official link
    Linked exact
    Role
    Environmental constraint
    Configuration
    1 · node/1 · match 0
    Logic
    OR
    Version bounds
    No explicit bounds
    Match ID
    8fda3905-67dd-4f31-afcf-014f1d7ccc1f
NVD CPE · OPERATING SYSTEMdraytekvigor2960_firmwareVulnerable target · 1 assertions
Any version (unconstrained) (< 1.5.1)Canonical identity product-367d4a9bb8d3bb315845477d344315754d256d897976bd76ebba0cbb0dcbbe7fLinked exact
Scope supported
Inspect raw assertion
  1. cpe:2.3:o:draytek:vigor2960_firmware:*:*:*:*:*:*:*:*
    Official link
    Linked exact
    Role
    Vulnerable target
    Configuration
    1 · node/0 · match 0
    Logic
    OR
    Version bounds
    through excluding 1.5.1
    Match ID
    e1e84f07-5dba-4d3c-930f-9c3f73c70ea1
NVD CPE · HARDWAREdraytekvigor300bEnvironmental constraint · 1 assertions
Version not applicableCanonical identity product-160e8fac3a3fd6f40b46d7fb5d98f4769f2b950d7aa017880ee5dcc11e40f82bLinked exact
Scope constrained
Inspect raw assertion
  1. cpe:2.3:h:draytek:vigor300b:-:*:*:*:*:*:*:*
    Official link
    Linked exact
    Role
    Environmental constraint
    Configuration
    2 · node/1 · match 0
    Logic
    OR
    Version bounds
    No explicit bounds
    Match ID
    da5b988d-ed1a-4cbf-8b34-c5b03a55ed52
NVD CPE · OPERATING SYSTEMdraytekvigor300b_firmwareVulnerable target · 1 assertions
Any version (unconstrained) (< 1.5.1)Canonical identity product-d2978ffea6d708eae77e001de08ae6f5140a5c8d716026de8bf11be0e12d6acdLinked exact
Scope supported
Inspect raw assertion
  1. cpe:2.3:o:draytek:vigor300b_firmware:*:*:*:*:*:*:*:*
    Official link
    Linked exact
    Role
    Vulnerable target
    Configuration
    2 · node/0 · match 0
    Logic
    OR
    Version bounds
    through excluding 1.5.1
    Match ID
    c11c7526-608d-4c7f-b75d-b7571c4cc6c3
NVD CPE · HARDWAREdraytekvigor3900Environmental constraint · 1 assertions
Version not applicableCanonical identity product-e7911a039ecb01bf00de4410b1275296df5bed746d6ecbf69634305caf8b010eLinked exact
Scope constrained
Inspect raw assertion
  1. cpe:2.3:h:draytek:vigor3900:-:*:*:*:*:*:*:*
    Official link
    Linked exact
    Role
    Environmental constraint
    Configuration
    0 · node/1 · match 0
    Logic
    OR
    Version bounds
    No explicit bounds
    Match ID
    feecfbbc-5551-4135-9194-4216a39b04b9
NVD CPE · OPERATING SYSTEMdraytekvigor3900_firmwareVulnerable target · 1 assertions
Any version (unconstrained) (< 1.5.1)Canonical identity product-2d559632ff8d7462d5285ef464a2c9e791bddfe1d2b4148a645dc9ddec11a3ecLinked exact
Scope supported
Inspect raw assertion
  1. cpe:2.3:o:draytek:vigor3900_firmware:*:*:*:*:*:*:*:*
    Official link
    Linked exact
    Role
    Vulnerable target
    Configuration
    0 · node/0 · match 0
    Logic
    OR
    Version bounds
    through excluding 1.5.1
    Match ID
    d22bb1b3-6c91-474a-86e1-f3e8b682a983

Affected-product evidence

Accepted scope and product mapping

3 canonical links · 1 source-reported links

Mapping establishedEvidence supported

vendor-dbfbc71640fa78f1180e3ccb0617e87b2b2c10d4741c33e36622777a634c2adc · product-2d559632ff8d7462d5285ef464a2c9e791bddfe1d2b4148a645dc9ddec11a3ec

Source class
Nvd cpe vulnerable target
Assertions
1
Mapping revision
cpe23-exact-mapping-v1
Observed cutoff
Aug 27, 2026
Retained assertion IDs
72c81e55-374e-43ae-8e64-145cf629fa1f
Mapping establishedEvidence supported

vendor-dbfbc71640fa78f1180e3ccb0617e87b2b2c10d4741c33e36622777a634c2adc · product-367d4a9bb8d3bb315845477d344315754d256d897976bd76ebba0cbb0dcbbe7f

Source class
Nvd cpe vulnerable target
Assertions
1
Mapping revision
cpe23-exact-mapping-v1
Observed cutoff
Aug 27, 2026
Retained assertion IDs
7f26f596-a994-4d75-9d0b-b87251a69e27
Mapping establishedEvidence supported

vendor-dbfbc71640fa78f1180e3ccb0617e87b2b2c10d4741c33e36622777a634c2adc · product-d2978ffea6d708eae77e001de08ae6f5140a5c8d716026de8bf11be0e12d6acd

Source class
Nvd cpe vulnerable target
Assertions
1
Mapping revision
cpe23-exact-mapping-v1
Observed cutoff
Aug 27, 2026
Retained assertion IDs
705b0b7e-80fe-4bb9-98ec-46a4cf6c88e1
Source-reported scopeSource-reported scope

Canonical linkage remains open; the cited source assertion is retained below.

Vendor specified only by source · Product specified only by source

Source class
Direct cve affected
Assertions
4
Mapping revision
cpe23-exact-mapping-v1
Observed cutoff
Aug 27, 2026
Retained assertion IDs
3eab7b25-1d52-45b6-8a1f-1aa7804207c352ec191c-1df4-4b0b-bda9-453625716a2c8a9caac5-9865-4fa2-a258-3774a5c4aface32381e3-2edc-4368-8663-e27a7dc8450c

Assessments

CVSS by origin

9.8
NVDCVSS 3.1 · role Primary · priority eligiblevalid_matchCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
7.5
NVDCVSS 2.0 · role Primary · priority eligiblevalid_matchAV:N/AC:L/Au:N/C:P/I:P/A:P
9.8
CVE Program sourceCVSS 3.1 · role Secondary · priority eligiblevalid_matchCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
9.8
CISA-ADPCVSS 3.1 · role unknown · display onlyDirect record assessment retained outside normalized eligibilityCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Direct CVE/CNA normalized decisions

9.8Priority eligible

CISA-ADP

CVSS 3.1 · Secondary · Independent enrichment · rank 2

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Validation
Valid match
Recomputed
9.8
Decision reason
Evidence supported
Policy
casca-direct-cvss-eligibility-v1

Assessments are retained side by side under closed precedence. Cascade never averages CVSS.

Evidence boundaries

  • KEV membership is authoritative for the catalog, not proof of exposure in any environment.
  • EPSS is a dated model probability and not an individual-environment prediction.
  • Affected or fixed status applies only to the exact cited product and version scope; remaining scope stays source-scoped.
  • NVD-carried upstream facts remain derivative; independent corroboration requires a separately authored source.
  • Only NVD metrics validated under the generation-bound calculator are Public Priority eligible; direct CVE record metrics remain display-only.
  • NVD CVSS source eligibility is closed: NVD-authored, exact record-source, or registered same-CVE container origin; unmapped sources remain display-only.
  • Core replay supports the active and immediately prior generation; retrospective valid-at replay is deferred.
  • OSV aggregation and OSV-converted NVD material are not independent corroboration.
  • Red Hat facts are vendor assertions for the exact supplied products.
  • Nonmembership and not-yet-observed states are not proof of safety.