3.5 CVE-2024-11971
XSS Exploit
A vulnerability classified as problematic was found in Guizhou Xiaoma Technology jpress 5.1.2. Affected by this vulnerability is an unknown functionality of the file /commons/attachment/upload of the component Avatar Handler. The manipulation of the argument files leads to cross site scripting. The attack can be launched remotely. The exploit has been disclosed to the public and may be used.
https://nvd.nist.gov/vuln/detail/CVE-2024-11971
Categories
CWE-79 : Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. A common abbreviation for Cross-Site Scripting. Used as a synonym of stored (Type 2) XSS. In the early years after initial discovery of XSS, "CSS" was a commonly-used acronym. However, this would cause confusion with "Cascading Style Sheets," so usage of this acronym has declined significantly. Use automated static analysis tools that target this type of weakness. Many modern techniques use data flow analysis to minimize the number of false positives. This is not a perfect solution, since 100% accuracy and coverage are not feasible, especially when multiple components are involved. Use the XSS Cheat Sheet [REF-714] or automated test-generation tools to help launch a wide variety of attacks against your web application. The Cheat Sheet contains many subtle XSS variations that are specifically targeted against weak XSS defenses. Understand all the potential areas where untrusted inputs can enter your software: parameters or arguments, cookies, anything read from the network, environment variables, reverse DNS lookups, query results, request headers, URL components, e-mail, files, filenames, databases, and any external systems that provide data to the application. Remember that such inputs may be obtained indirectly through API calls. For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server. If available, use structured mechanisms that automatically enforce the separation between data and code. These mechanisms may be able to provide the relevant quoting, encoding, and validation automatically, instead of relying on the developer to provide this capability at every point where output is generated. With Struts, write all data from form beans with the bean's filter attribute set to true. To help mitigate XSS attacks against the user's session cookie, set the session cookie to be HttpOnly. In browsers that support the HttpOnly feature (such as more recent versions of Internet Explorer and Firefox), this attribute can prevent the user's session cookie from being accessible to malicious client-side scripts that use document.cookie. This is not a complete solution, since HttpOnly is not supported by all browsers. More importantly, XMLHTTPRequest and other powerful browser technologies provide read access to HTTP headers, including the Set-Cookie header in which the HttpOnly flag is set. When the set of acceptable objects, such as filenames or URLs, is limited or known, create a mapping from a set of fixed input values (such as numeric IDs) to the actual filenames or URLs, and reject all other inputs. Use an application firewall that can detect attacks against this weakness. It can be beneficial in cases in which the code cannot be fixed (because it is controlled by a third party), as an emergency prevention measure while more comprehensive software assurance measures are applied, or to provide defense in depth. When using PHP, configure the application so that it does not use register_globals. During implementation, develop the application so that it does not rely on this feature, but be wary of implementing a register_globals emulation that is subject to weaknesses such as CWE-95, CWE-621, and similar issues. Python Library Manager did not sufficiently neutralize a user-supplied search term, allowing reflected XSS. Python-based e-commerce platform did not escape returned content on error pages, allowing for reflected Cross-Site Scripting attacks. Universal XSS in mobile operating system, as exploited in the wild per CISA KEV. Chain: improper input validation (CWE-20) in firewall product leads to XSS (CWE-79), as exploited in the wild per CISA KEV. Admin GUI allows XSS through cookie. Web stats program allows XSS through crafted HTTP header. Web log analysis product allows XSS through crafted HTTP Referer header. Chain: protection mechanism failure allows XSS Chain: incomplete denylist (CWE-184) only checks "javascript:" tag, allowing XSS (CWE-79) using other tags Chain: incomplete denylist (CWE-184) only removes SCRIPT tags, enabling XSS (CWE-79) Reflected XSS using the PATH_INFO in a URL Reflected XSS not properly handled when generating an error message Reflected XSS sent through email message. Stored XSS in a security product. Stored XSS using a wiki page. Stored XSS in a guestbook application. Stored XSS in a guestbook application using a javascript: URI in a bbcode img tag. Chain: library file is not protected against a direct request (CWE-425), leading to reflected XSS (CWE-79).
CWE-434 : Unrestricted Upload of File with Dangerous Type
The product allows the upload or transfer of dangerous file types that are automatically processed within its environment. This can be primary when there is no check for the file type at all. This can be resultant when use of double extensions (e.g. ".php.gif") bypasses a check. This can be resultant from client-side enforcement (CWE-602); some products will include web script in web clients to check the filename, without verifying on the server side. Used in vulnerability databases and elsewhere, but it is insufficiently precise. The phrase could be interpreted as the lack of restrictions on the size or number of uploaded files, which is a resource consumption issue. Generate a new, unique filename for an uploaded file instead of using the user-supplied filename, so that no external input is used at all.[REF-422] [REF-423] When the set of acceptable objects, such as filenames or URLs, is limited or known, create a mapping from a set of fixed input values (such as numeric IDs) to the actual filenames or URLs, and reject all other inputs. Consider storing the uploaded files outside of the web document root entirely. Then, use other mechanisms to deliver the files dynamically. [REF-423] Define a very limited set of allowable extensions and only generate filenames that end in these extensions. Consider the possibility of XSS (CWE-79) before allowing .html or .htm file types. Ensure that only one extension is used in the filename. Some web servers, including some versions of Apache, may process files based on inner extensions so that "filename.php.gif" is fed to the PHP interpreter.[REF-422] [REF-423] When running on a web server that supports case-insensitive filenames, perform case-insensitive evaluations of the extensions that are provided. For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server. Do not rely exclusively on sanity checks of file contents to ensure that the file is of the expected type and size. It may be possible for an attacker to hide code in some file segments that will still be executed by the server. For example, GIF images may contain a free-form comments field. Do not rely exclusively on the MIME content type or filename attribute when determining how to render a file. Validating the MIME content type and ensuring that it matches the extension is only a partial solution. Run your code using the lowest privileges that are required to accomplish the necessary tasks [REF-76]. If possible, create isolated accounts with limited privileges that are only used for a single task. That way, a successful attack will not immediately give the attacker access to the rest of the software or its environment. For example, database applications rarely need to run as the database administrator, especially in day-to-day operations. PHP-based FAQ management app does not check the MIME type for uploaded images Web-based mail product stores ".shtml" attachments that could contain SSI PHP upload does not restrict file types upload and execution of .php file upload file with dangerous extension program does not restrict file types improper type checking of uploaded files Double "php" extension leaves an active php extension in the generated filename. ASP program allows upload of .asp files by bypassing client-side checks ASP file upload ASP file upload
References
cna@vuldb.com Exploit
https://github.com/dycccccccc/jpress/blob/main/JPRESS%20file%20upload%20leads... Exploit Third Party Advisory |
https://vuldb.com/?ctiid.286381 Permissions Required |
https://vuldb.com/?id.286381 Third Party Advisory |
https://vuldb.com/?submit.453637 Third Party Advisory |
CPE
cpe | start | end |
---|---|---|
Configuration 1 | ||
cpe:2.3:a:jpress:jpress:5.1.2:*:*:*:*:*:*:* |
REMEDIATION
EXPLOITS
Exploit-db.com
id | description | date | |
---|---|---|---|
No known exploits |
POC Github
Url |
---|
No known exploits |
Other Nist (github, ...)
Url |
---|
https://github.com/dycccccccc/jpress/blob/main/JPRESS%20file%20upload%20leads... |
CAPEC
Common Attack Pattern Enumerations and Classifications
id | description | severity |
---|---|---|
209 | XSS Using MIME Type Mismatch |
Medium |
588 | DOM-Based XSS |
Very High |
591 | Reflected XSS |
Very High |
592 | Stored XSS |
Very High |
63 | Cross-Site Scripting (XSS) |
Very High |
85 | AJAX Footprinting |
Low |
1 | Accessing Functionality Not Properly Constrained by ACLs |
High |
MITRE
Techniques
id | description |
---|---|
T1574.010 | Hijack Execution Flow: ServicesFile Permissions Weakness |
© 2022 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation. |
Mitigations
id | description |
---|---|
T1574.010 | Limit privileges of user accounts and groups so that only authorized administrators can interact with service changes and service binary target path locations. Deny execution from user directories such as file download directories and temp directories where able. |
© 2022 The MITRE Corporation. Esta obra se reproduce y distribuye con el permiso de The MITRE Corporation. |
Cybersecurity needs ?
Strengthen software security from the outset with our DevSecOps expertise
Integrate security right from the start of the software development cycle for more robust applications and greater customer confidence.
Our team of DevSecOps experts can help you secure your APIs, data pipelines, CI/CD chains, Docker containers and Kubernetes deployments.