Skip to content
OpenAdvisories

Weakness (CWE)

CWE-352: Cross-Site Request Forgery

Compound

The web application does not, or cannot, sufficiently verify whether a request was intentionally provided by the user who sent the request, which could have originated from an unauthorized actor.

How to prevent it (7 mitigations)
  1. Architecture and Design

    Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid [REF-1482].

    For example, use anti-CSRF packages such as the OWASP CSRFGuard. [REF-330]

    Another example is the ESAPI Session Management control, which includes a component for CSRF. [REF-45]

  2. Implementation

    Ensure that the application is free of cross-site scripting issues (CWE-79), because most CSRF defenses can be bypassed using attacker-controlled script.

  3. Architecture and Design

    Generate a unique nonce for each form, place the nonce into the form, and verify the nonce upon receipt of the form. Be sure that the nonce is not predictable (CWE-330). [REF-332]

  4. Architecture and Design

    Identify especially dangerous operations. When the user performs a dangerous operation, send a separate confirmation request to ensure that the user intended to perform that operation.

  5. Architecture and Design

    Use the "double-submitted cookie" method as described by Felten and Zeller:

    When a user visits a site, the site should generate a pseudorandom value and set it as a cookie on the user's machine. The site should require every form submission to include this value as a form value and also as a cookie value. When a POST request is sent to the site, the request should only be considered valid if the form value and the cookie value are the same.

    Because of the same-origin policy, an attacker cannot read or modify the value stored in the cookie. To successfully submit a form on behalf of the user, the attacker would have to correctly guess the pseudorandom value. If the pseudorandom value is cryptographically strong, this will be prohibitively difficult.

    This technique requires Javascript, so it may not work for browsers that have Javascript disabled. [REF-331]

  6. Architecture and Design

    Do not use the GET method for any request that triggers a state change.

  7. Implementation

    Check the HTTP Referer header to see if the request originated from an expected page. This could break legitimate functionality, because users or proxies may have disabled sending the Referer for privacy reasons.

Source: MITRE CWE-352

6,785 results · Feed

  • Medium 6.8

    Vulnerability in Redash OAuth2 flows due to misuse of state field (should be a nonce)

    Redash is a package for data visualization and sharing. In Redash version 10.0 and prior, the implementation of Google Login (via OAuth) incorrectly uses the `state` parameter to pass the next URL to redirect the user to after login. The `state` parameter sho…

  • Unscored —

    MAZ Loader < 1.4.1 - Arbitrary Loader Deletion via CSRF

    The MAZ Loader WordPress plugin before 1.4.1 does not enforce nonce checks, which allows attackers to make administrators delete arbitrary loaders via a CSRF attack

  • Unscored —

    Images to WebP < 1.9 - Multiple Cross Site Request Forgery (CSRF)

    The Images to WebP WordPress plugin before 1.9 does not have CSRF checks in place when performing some administrative actions, which could result in modification of plugin settings, Denial-of-Service, as well as arbitrary image conversion

  • High 8.8

    Moodle contains CSRF vulnerability

    A flaw was found in Moodle in versions 3.11 to 3.11.3, 3.10 to 3.10.7, 3.9 to 3.9.10 and earlier unsupported versions. The "delete related badge" functionality did not include the necessary token check to prevent a CSRF risk.

  • Medium 6.8

    CSRF Vulnerability in QmailAgent

    We have already fixed this vulnerability in the following versions of QmailAgent: QmailAgent 3.0.2 ( 2021/08/25 ) and later

  • Medium 4.2

    The disqualify lead action may be executed without CSRF token check

    OroCRM is an open source Client Relationship Management (CRM) application. Affected versions we found to suffer from a vulnerability which could an attacker is able to disqualify any Lead with a Cross-Site Request Forgery (CSRF) attack. There are no workaroun…

  • High 8.8

    Easy Registration Forms <= 2.1.1 Cross-Site Request Forgery to Stored Cross-Site Scripting

    The Easy Registration Forms WordPress plugin is vulnerable to Cross-Site Request Forgery due to missing nonce validation via the ajax_add_form function found in the ~/includes/class-form.php file which made it possible for attackers to inject arbitrary web sc…

  • Medium 4.6

    Cross-Site Request Forgery (CSRF) in kevinpapst/kimai2

    kimai2 is vulnerable to Cross-Site Request Forgery (CSRF)

  • Medium 4.3

    Cross-Site Request Forgery (CSRF) in kevinpapst/kimai2

    kimai2 is vulnerable to Cross-Site Request Forgery (CSRF)

  • Medium 4.3

    Cross-Site Request Forgery (CSRF) in kevinpapst/kimai2

    kimai2 is vulnerable to Cross-Site Request Forgery (CSRF)

  • Critical 9.3

    Authentication Bypass by CSRF Weakness

    ### Impact The actual vulnerability has been discovered on `solidus_auth_devise`. See [GHSA-xm34-v85h-9pg2](https://github.com/solidusio/solidus_auth_devise/security/advisories/GHSA-xm34-v85h-9pg2) for details. The security advisory here exists to provide an …

  • High 8.8

    WordPress WP Reset PRO Premium Plugin <= 5.98 - Cross-Site Request Forgery (CSRF) vulnerability

    Cross-Site Request Forgery (CSRF) vulnerability in WebFactory Ltd. WP Reset PRO plugin <= 5.98 versions.

  • Critical 9.3

    Authentication Bypass by CSRF Weakness

    solidus_auth_devise provides authentication services for the Solidus webstore framework, using the Devise gem. In affected versions solidus_auth_devise is subject to a CSRF vulnerability that allows user account takeover. All applications using any version of…

  • Critical 9.3

    Authentication Bypass by CSRF Weakness

    spree_auth_devise is an open source library which provides authentication and authorization services for use with the Spree storefront framework by using an underlying Devise authentication framework. In affected versions spree_auth_devise is subject to a CSR…

  • Medium 4.3

    Cross-Site Request Forgery allowing sending of test emails and generation of node auto-deployment keys

    Pterodactyl is an open-source game server management panel built with PHP 7, React, and Go. Due to improperly configured CSRF protections on two routes, a malicious user could execute a CSRF-based attack against the following endpoints: Sending a test email a…

  • Unscored —

    MouseWheel Smooth Scroll < 5.7 - Plugin's Setting Update via CSRF

    The MouseWheel Smooth Scroll WordPress plugin before 5.7 does not have CSRF check in place on its settings page, which could allow attackers to make a logged in admin change them via a CSRF attack

  • Unscored —

    Simple JWT Login < 3.2.1 - Arbitrary Settings Update to Site Takeover via CSRF

    The Simple JWT Login WordPress plugin before 3.2.1 does not have nonce checks when saving its settings, allowing attackers to make a logged in admin changed them. Settings such as HMAC verification secret, account registering and default user roles can be upd…

  • Unscored —

    Colorful Categories < 2.0.15 - Arbitrary Colors Update via CSRF

    The Colorful Categories WordPress plugin before 2.0.15 does not enforce nonce checks which could allow attackers to make a logged in admin or editor change taxonomy colors via a CSRF attack

  • Unscored —

    WP Performance Score Booster < 2.1 - Settings Change via CSRF

    The WP Performance Score Booster WordPress plugin before 2.1 does not have CSRF check when saving its settings, which could allow attackers to make a logged in admin change them via a CSRF attack.

  • High 8.8

    Calibre-web - Admin Account Takeover via Cross-Site Request Forgery (CSRF)

    In Calibre-web, versions 0.6.0 to 0.6.13 are vulnerable to Cross-Site Request Forgery (CSRF). By luring an authenticated user to click on a link, an attacker can create a new user role with admin privileges and attacker-controlled credentials, allowing them t…

  • High 8.1

    Piranha CMS - Site-wide Cross-Site Request Forgery (CSRF)

    In PiranhaCMS, versions 4.0.0-alpha1 to 9.2.0 are vulnerable to cross-site request forgery (CSRF) when performing various actions supported by the management system, such as deleting a user, deleting a role, editing a post, deleting a media folder etc., when …

  • Medium 5.4

    Cross-Site Request Forgery (CSRF) in star7th/showdoc

    showdoc is vulnerable to Cross-Site Request Forgery (CSRF)

  • Medium 4.3

    Cross-Site Request Forgery (CSRF) in star7th/showdoc

    showdoc is vulnerable to Cross-Site Request Forgery (CSRF)

  • Medium 4.3

    Cross-Site Request Forgery (CSRF) in star7th/showdoc

    showdoc is vulnerable to Cross-Site Request Forgery (CSRF)

  • Medium 5.4

    Cross-Site Request Forgery (CSRF) in firefly-iii/firefly-iii

    firefly-iii is vulnerable to Cross-Site Request Forgery (CSRF)

  • Medium 4.3

    Cross-Site Request Forgery (CSRF) in snipe/snipe-it

    snipe-it is vulnerable to Cross-Site Request Forgery (CSRF)

  • Medium 6.3

    Cross-Site Request Forgery (CSRF) in area17/twill

    twill is vulnerable to Cross-Site Request Forgery (CSRF)

  • Unscored —

    WP SEO Redirect 301 < 2.3.2 - Redirect Deletion via CSRF

    The WP SEO Redirect 301 WordPress plugin before 2.3.2 does not have CSRF in place when deleting redirects, which could allow attackers to make a logged in admin delete them via a CSRF attack

  • Unscored —

    wpDiscuz < 7.3.4 - Arbitrary Comment Addition/Edition/Deletion via CSRF

    The wpDiscuz WordPress plugin before 7.3.4 does check for CSRF when adding, editing and deleting comments, which could allow attacker to make logged in users such as admin edit and delete arbitrary comment, or the user who made the comment to edit it via a CS…

  • Unscored —

    Redirect 404 Error Page to Homepage or Custom Page with Logs < 1.7.9 - Log Deletion via CSRF

    The Redirect 404 Error Page to Homepage or Custom Page with Logs WordPress plugin before 1.7.9 does not check for CSRF when deleting logs, which could allow attacker to make a logged in admin delete them via a CSRF attack

  • Unscored —

    404 to 301 < 3.0.9 - Logs Deletion via CSRF

    The 404 to 301 – Redirect, Log and Notify 404 Errors WordPress plugin before 3.0.9 does not have CSRF check in place when cleaning the logs, which could allow attacker to make a logged in admin delete all of them via a CSRF attack

  • Unscored —

    Genie WP Favicon <= 0.5.2 - Arbitrary Favicon Change via CSRF

    The Genie WP Favicon WordPress plugin through 0.5.2 does not have CSRF in place when updating the favicon, which could allow attackers to make a logged in admin change it via a CSRF attack

  • Unscored —

    Chameleon CSS <= 1.2 - Subscriber+ SQL Injection

    The Chameleon CSS WordPress plugin through 1.2 does not have any CSRF and capability checks in all its AJAX calls, allowing any authenticated user, such as subscriber to call them and perform unauthorised actions. One of AJAX call, remove_css, also does not s…

  • Medium 6.5

    Request injection in Spring Cloud Gateway

    Applications using Spring Cloud Gateway are vulnerable to specifically crafted requests that could make an extra request on downstream services. Users of affected versions should apply the following mitigation: 3.0.x users should upgrade to 3.0.5+, 2.2.x user…

  • Medium 6.5

    Cisco Unified Communications Products Cross-Site Request Forgery Vulnerability

    A vulnerability in the web-based management interface of Cisco Unified Communications Manager (Unified CM), Cisco Unified Communications Manager Session Management Edition (Unified CM SME), and Cisco Unified Communications Manager IM &amp; Presence Service (U…

  • Unscored —

    BP Better Messages < 1.9.9.41 - Multiple CSRF

    The BP Better Messages WordPress plugin before 1.9.9.41 does not check for CSRF in multiple of its AJAX actions: bp_better_messages_leave_chat, bp_better_messages_join_chat, bp_messages_leave_thread, bp_messages_mute_thread, bp_messages_unmute_thread, bp_bett…

  • Unscored —

    Far Future Expiry Header < 1.5 - Plugin's Settings Update via CSRF

    The Far Future Expiry Header WordPress plugin before 1.5 does not have CSRF check when saving its settings, which could allow attackers to make a logged in admin change them via a CSRF attack.

  • Unscored —

    Flat Preloader < 1.5.4 - CSRF to Stored Cross-Site Scripting

    The Flat Preloader WordPress plugin before 1.5.4 does not enforce nonce checks when saving its settings, as well as does not sanitise and escape them, which could allow attackers to a make logged in admin change them with a Cross-Site Scripting payload (trigg…

  • Unscored —

    Paypal Donation < 1.3.1 - CSRF to Arbitrary Post Deletion

    The Accept Donations with PayPal WordPress plugin before 1.3.1 provides a function to create donation buttons which are internally stored as posts. The deletion of a button is not CSRF protected and there is no control to check if the deleted post was a butto…

  • Unscored —

    Paypal Donation < 1.3.1 - CSRF to Stored Cross-Site Scripting

    The Accept Donations with PayPal WordPress plugin before 1.3.1 offers a function to create donation buttons, which internally are posts. The process to create a new button is lacking a CSRF check. An attacker could use this to make an authenticated admin crea…