Skip to main content

Plotly.js Graphing CVE-2026-55810

| EUVDEUVD-2026-43054 HIGH
Improperly Controlled Modification of Dynamically-Determined Object Attributes (CWE-915)
2026-07-10 drupal GHSA-gr6q-5p85-fq4q
8.1
CVSS 3.1 · Vendor: drupal
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with low-privilege Drupal account
  2. Delivery
    Reach Plotly.js graph config endpoint
  3. Exploit
    Submit crafted object-key parameters
  4. Execution
    Trigger uncontrolled attribute modification
  5. Persist
    Overwrite internal object state
  6. Impact
    Disclose or tamper with data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V4 - API and Web Service Object attribute protection
Exploitation Conditions

Exploitation requires an authenticated Drupal account with at least low-level privileges (CVSS PR:L) on a site that has the Plotly.js Graphing contrib module installed and enabled at a version between 0.0.0 and 3.0.2; the attacker must be able to reach the module's graph data/configuration handling to supply attacker-controlled object keys. No user interaction is required (UI:N) and the attack is network-reachable with low complexity (AV:N/AC:L). Limiting factors: the need for valid credentials narrows the attacker pool, the module must actually be deployed (a non-default add-on, not Drupal core), and the vulnerable release range must be present; there is no availability impact, so the risk is data tampering/disclosure rather than site takedown.

Impact

Signals are mixed. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N, 8.1) indicates a remotely reachable, low-complexity attack that only needs low-privilege authenticated access and no user interaction, with high confidentiality and integrity impact but no availability impact - consistent with data tampering/disclosure rather than denial of service. Against that, EPSS is very low at 0.16% (6th percentile), there is no KEV listing and no public exploit identified at time of analysis, so real-world exploitation pressure is currently low. The PR:L requirement is a genuine limiter: an attacker needs a valid Drupal account with at least some access to the module's functionality, which narrows the population of exploitable sites. Net: a legitimately high-severity integrity/confidentiality bug that warrants prompt patching on affected Drupal sites, but not an emergency on the level of an actively exploited unauthenticated RCE. No conflicting-vector concerns were found; the network vector is plausible for a web-facing Drupal module.

Exploit ScenarioDerived

An attacker who holds or registers a low-privileged account on a Drupal site running Plotly.js Graphing submits a crafted request to a graph-configuration endpoint, supplying attacker-chosen object keys that the module applies without validation. By injecting these keys, the attacker overwrites internal object attributes to read data they should not see or alter graph/entity state, achieving the high confidentiality and integrity impact reflected in the CVSS vector. No public exploit is identified at time of analysis, and the low attack complexity means the primary barrier is obtaining a valid account.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv3 – Jul 13, 2026

Object injection in the Drupal Plotly.js Graphing contributed module (all releases 0.0.0 through 3.0.2) lets an authenticated attacker with low privileges tamper with dynamically-determined object attributes, undermining both confidentiality and integrity of the site. The flaw stems from improperly controlled modification of object properties (CWE-915), and the network-reachable, low-complexity CVSS 3.1 vector (8.1) reflects meaningful severity; however, EPSS is only 0.16% (6th percentile) and no public exploit identified at time of analysis. It is not listed in CISA KEV.

Earlier versions of this analysis (2)
v2 Jul 13, 2026 - 19:31 cvss changed CVSS 8.1

Object injection in the Drupal Plotly.js Graphing contributed module (versions 0.0.0 through 3.0.2) allows an authenticated attacker to improperly modify dynamically-determined object attributes, resulting in high confidentiality and integrity impact. The flaw stems from unsafe handling of object properties (CWE-915) and can be triggered remotely by users holding at least low-level privileges. No public exploit identified at time of analysis, and the EPSS score of 0.16% (6th percentile) indicates low probability of near-term mass exploitation.

v1 Jul 13, 2026 - 19:09 CVSS 9.8

Object injection in the Drupal Plotly.js Graphing contributed module (all versions from 0.0.0 up to and including 3.0.2) lets remote attackers improperly modify dynamically-determined object attributes (CWE-915), potentially leading to full compromise of confidentiality, integrity and availability on the hosting Drupal site. The flaw is rated critical (CVSS 9.8, AV:N/AC:L/PR:N/UI:N) and a vendor fix is available via Drupal advisory SA-CONTRIB-2026-050, but there is no public exploit identified at time of analysis and EPSS exploitation probability is low (0.16%, 6th percentile).

RemediationAI

Patch available per vendor advisory: upgrade the Plotly.js Graphing module to the fixed release published in Drupal SA-CONTRIB-2026-050 (https://www.drupal.org/sa-contrib-2026-050), which supersedes the vulnerable 0.0.0-3.0.2 range; the exact fixed version is not specified in the provided data, so confirm the current recommended release on the module's project page before deploying. Until the update is applied, reduce exposure by tightening account provisioning and permissions so that only trusted, minimally necessary roles can reach the module's graph-configuration or data-submission features (since exploitation requires an authenticated low-privilege account), and consider temporarily disabling or uninstalling the Plotly.js Graphing module if the charts are non-essential - the trade-off is loss of graph rendering on affected pages. Placing the module's endpoints behind additional access review or a WAF rule that constrains unexpected object-key parameters can add defense while the patch is scheduled.

Affected VersionsENISA

Plotly.js Graphing 0.0.0 <3.0.2

Affected Packages

composer drupal/plotly_js fix: 3.0.2
euvd plotly_js_graphing fix: 3.0.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in composer, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Plotly.js Graphing is a Drupal contributed module that integrates the Plotly.js JavaScript charting library into Drupal so site builders can render interactive graphs from field or view data (CPE cpe:2.3:a:drupal:plotly.js_graphing). The root cause is CWE-915, Improperly Controlled Modification of Dynamically-Determined Object Attributes - often called object/property injection or mass assignment. This class arises when attacker-influenced keys are used to set object properties without an allow-list, letting an attacker overwrite internal attributes (configuration, control flags, or object state) that were never meant to be user-controllable, which in a PHP/Drupal context can corrupt entity or configuration objects processed during graph rendering.

Know when Plotly Js Graphing gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (drupal) PRIMARY 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 8.1 HIGH

Web-reachable module needs a low-privilege authenticated account (PR:L) and no interaction; object injection enables data disclosure and tampering (C:H/I:H) but no service outage (A:N).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Red Hat 8.1 HIGH

Primary rating from Vendor (drupal).

CVSS VectorVendor: drupal

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

8
Analysis Updated
Jul 13, 2026 - 19:32 vuln.today
v3 - CVSS changed
Analysis Updated
Jul 13, 2026 - 19:31 vuln.today
v2 - CVSS changed
Severity Changed
Jul 13, 2026 - 19:22 NVD
CRITICAL HIGH
CVSS changed
Jul 13, 2026 - 19:22 NVD
9.8 (CRITICAL) 8.1 (HIGH)
CVSS changed
Jul 13, 2026 - 19:07 NVD
9.8 (CRITICAL)
Patch available
Jul 10, 2026 - 23:02 EUVD
CVE Published
Jul 10, 2026 - 21:44 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 10, 2026 - 21:44 cve.org
CRITICAL 9.8

DescriptionCVE.org

Improperly Controlled Modification of Dynamically-Determined Object Attributes vulnerability in Drupal Plotly.js Graphing allows Object Injection. This issue affects Plotly.js Graphing versions: from 0.0.0 to 3.0.2.

Executive ViewAI

Why It Matters

The Drupal Plotly.js Graphing module (versions 0.0.0-3.0.2) contains a high-severity object injection vulnerability (CVE-2026-55810, CVSS 8.1) allowing low-privilege authenticated users to manipulate chart data and visualizations. Organizations relying on Plotly dashboards for reporting and decision-making face exposure to unauthorized data modification, potentially corrupting the integrity of business intelligence systems. Remediation is urgent, as the attack requires only standard user credentials and can affect any authenticated user with module access.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
niche Drupal contributed graphing module, limited site adoption
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy