Miggo Logo

CVE-2025-10930: Drupal Currency allows Cross Site Request Forgery

6.5

CVSS Score
3.1

Basic Information

EPSS Score
0.03225%
Published
10/30/2025
Updated
10/30/2025
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Package NameEcosystemVulnerable VersionsFirst Patched Version
drupal/currencycomposer< 3.5.03.5.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability is a Cross-Site Request Forgery (CSRF) in the Drupal Currency module's exchange rate update form. The analysis of the security patch, found in commit 2d30f8f031333a230336a20c4a8f87588181319a from the drupal-projects/currency repository, reveals the exact nature of the vulnerability and the functions involved. The patch modifies two key functions in currency.admin.inc:

  1. currency_exchange_rates_form: This function is responsible for building the form. The vulnerability existed here because the form was generated without a CSRF token. The patch rectifies this by adding a hidden token field to the form.

  2. currency_exchange_rates_form_submit: This function processes the submitted form data. The vulnerability was exploited here because this function did not validate any CSRF token, thus processing any submitted data as long as the user had an active session. The patch introduces a check to validate the CSRF token, and if the token is invalid, it aborts the submission and displays an error message.

During an exploit, an attacker would trick a privileged user into submitting a crafted request to the server. This would trigger the currency_exchange_rates_form_submit function, which, without the patch, would execute the unauthorized action (e.g., modifying currency exchange rates). Therefore, both the form building function and the form submission handler are critical to understanding and identifying this vulnerability in a runtime profile.

Vulnerable functions

currency_exchange_rates_form
currency.admin.inc
This function builds the currency exchange rates form. Before the patch, it did not include a CSRF token, making the form vulnerable to Cross-Site Request Forgery attacks. An attacker could craft a malicious request to this form and trick an administrator into submitting it, leading to unauthorized changes to the exchange rates.
currency_exchange_rates_form_submit
currency.admin.inc
This function handles the submission of the currency exchange rates form. Prior to the patch, it did not validate a CSRF token, allowing attackers to perform a CSRF attack. The vulnerable function would process the submitted form data without verifying the request's authenticity. The patch adds the necessary token validation to prevent this.

WAF Protection Rules

WAF Rule

*ross-Sit* R*qu*st *or**ry (*SR*) vuln*r**ility in *rup*l *urr*n*y *llows *ross Sit* R*qu*st *or**ry. T*is issu* *****ts *urr*n*y: *rom *.*.* ***or* *.*.*.

Reasoning

T** vuln*r**ility is * *ross-Sit* R*qu*st *or**ry (*SR*) in t** *rup*l *urr*n*y mo*ul*'s *x***n** r*t* up**t* *orm. T** *n*lysis o* t** s**urity p*t**, *oun* in *ommit `****************************************` *rom t** `*rup*l-proj**ts/*urr*n*y` r*p