Hi Jonathan, If this is an actual problem or not depends on your application.
Several of our apps are security scanned regularly, and we always get some false positives. E.g. ”Path based vulnerability” because extra path parameters can be added, and we still show the same page. >From your message I gather that a form field is being manipulated. I’m not sure why the scan tool is assuming that the field value is being used in an xpath query. But in general I think that, when (a) inputs are never output to html “raw” (unencoded) and (b) inputs are never used as-is (without escaping) in SQL or other queries, you are good. So if this an issue in your case depends on what you do with the value of your form field at regionFormGroup:regionFormGroup_body:regionTextField Met vriendelijke groet, Kind regards, Bas Gooren Op 8 november 2022 bij 05:03:57, Jonathan P. Babie ( jba...@osc.ny.gov.invalid) schreef: Hello, Our Wicket web application went through an app scan. We understand most problems that came back from the report and have solutions, but one that's troubling us is: Blind XPath Injection Severity: Medium CVSS Score: 6.4 Entity: regionFormGroup:regionFormGroup_body:regionTextField (Parameter) Risk: It is possible to access information stored in a sensitive data resource Cause: Sanitation of hazardous characters was not performed correctly on user input Fix: Review possible solutions for hazardous character injection Difference: Parameter regionFormGroup:regionFormGroup_body:regionTextField manipulated from: b to: b%27+and+last%28%29%3Dlast%28%29+or+%27 Parameter regionFormGroup:regionFormGroup_body:regionTextField manipulated from: b to: b%27+and+not%28last%28%29%29%3Dlast%28%29+or%27 Parameter regionFormGroup:regionFormGroup_body:regionTextField manipulated from: b to: b%27+and+position%28%29%3Dposition%28%29+or+%27 Reasoning: The test result seems to indicate a vulnerability because it shows that values can be appended to parameter values, indicating that they were embedded in an Xpath query. In this test, four (or sometimes five) requests are sent. One of the last two should be logically equal to the original, and the request before that is different, and should yield empty result or error. Any others are for control purposes. A comparison between the responses of the equivalent requests, and those that are not equivalent with the first (the equivalent options are similar to it, and the erroneous one is different) indicates that the application is vulnerable. Test Requests and Responses: POST /lgmm/1EFGhfMAxecfRmNOJXeaL4DEM0H-EW58EQqlsCvFg2CrIQQFX7A73Gb1jkQR1RVAgGv-Ar-xgDmvL9rYCjIxJyUCSoIcSK57hbnGyvGyXBMLG_P37gUxG-gvskBCrGmZDb7eWl9v5shigfUuZPG54Nckxrw3uEsF01z1jdgTzDjsiYMQe_Wp04lViFNHIjn9LpPw9tg8gq5DRvPE2MTYlx82jMU_2xmlJJMYGoOTwwKnJRA94d_aqyTlatMrDzSr/1EFf1/rGm57 HTTP/1.1 Host: example.domain.com Connection: keep-alive sec-ch-ua: "Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99" sec-ch-ua-mobile: ?0 Wicket-FocusedElementId: id87 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Accept: application/xml, text/xml, */*; q=0.01 Wicket-Ajax-BaseURL: 1EFGhfMAxecfRmNOJXeaL4DEM0H-EW58EQqlsCvFg2CrIQQFX7A73Gb1jkQR1RVAgGv-Ar-xgDmvL9rYCjIxJyUCSoIcSK57hbnGyvGyXBMLG_P37gUxG-gvskBCrGmZmajvnhPJ2o8/1EFf1/-gvdb X-Requested-With: XMLHttpRequest Wicket-Ajax: true sec-ch-ua-platform: "Windows" Origin: https://example.domain.com Sec-Fetch-Site: same-origin Sec-Fetch-Mode: cors Sec-Fetch-Dest: empty Referer: https://example.domain.com/lgmm/1EFGhfMAxecfRmNOJXeaL4DEM0H-EW58EQqlsCvFg2CrIQQFX7A73Gb1jkQR1RVAgGv-Ar-xgDmvL9rYCjIxJyUCSoIcSK57hbnGyvGyXBMLG_P37gUxG-gvskBCrGmZmajvnhPJ2o8/1EFf1/-gvdb Accept-Language: en-US Content-Length: 58 regionFormGroup%3AregionFormGroup_body%3AregionTextField=b HTTP/1.1 200 OK Date: Fri, 28 Oct 2022 01:26:27 GMT X-Powered-By: Servlet/3.1 Expires: Thu, 01 Jan 1970 00:00:00 GMT Pragma: no-cache Cache-Control: no-cache, no-store Ajax-Location: ../../1EFGhfMAxecfRmNOJXeaL4DEM0H-EW58EQqlsCvFg2CrIQQFX7A73Gb1jkQR1RVAgGv-Ar-xgDmvL9rYCjIxJyUCSoIcSK57hbnGyvGyXBMLG_P37gUxG-gvskBCrGmZGxUSqIGs5Tb2rcQ5fnAdfw/1EFf1/rYC7b Keep-Alive: timeout=5, max=94 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/xml;charset=UTF-8 Content-Language: en-US X-Frame-Options: SAMEORIGIN Strict-Transport-Security: max-age=31536000; preload <ajax-response> <redirect><![CDATA[../../1EFGhfMAxecfRmNOJXeaL4DEM0H-EW58EQqlsCvFg2CrIQQFX7A73Gb1jkQR1RVAgGv-Ar-xgDmvL9rYCjIxJyUCSoIcSK57hbnGyvGyXBMLG_P37gUxG-gvskBCrGmZGxUSqIGs5Tb2rcQ5fnAdfw/1EFf1/rYC7b]]></redirec ... ... ... Content-Length: 96 regionFormGroup%3AregionFormGroup_body%3AregionTextField=b%27+and+last%28%29%3Dlast%28%29+or+%27 HTTP/1.1 200 OK Date: Fri, 28 Oct 2022 01:26:27 GMT X-Powered-By: Servlet/3.1 ... ... ... Content-Length: 104 regionFormGroup%3AregionFormGroup_body%3AregionTextField=b%27+and+not%28last%28%29%29%3Dlast%28%29+or%27 HTTP/1.1 200 OK Date: Fri, 28 Oct 2022 01:26:27 GMT X-Powered-By: Servlet/3.1 ... ... ... Content-Length: 104 regionFormGroup%3AregionFormGroup_body%3AregionTextField=b%27+and+position%28%29%3Dposition%28%29+or+%27 HTTP/1.1 200 OK Date: Fri, 28 Oct 2022 01:26:27 GMT X-Powered-By: Servlet/3.1 We're having a hard time understanding what's even happening here or if it's a threat, but essentially we have a very simple Panel with a TextField that drives a DataTable via ajax, and it appears that somehow the app scan is manipulating the TextField with a POST and sending garbage data. Unfortunately we don't have any context aside from this report. We were hoping you might help us understand the problem, and let us know if this is something we can/should configure in the Wicket framework. Since this is a Medium severity, we are being told that this has to be dealt with. Any information to guide us would be greatly appreciated. Thank you, Jonathan Babie Java Applications Developer Work: (838) 910-4274 Notice: This communication, including any attachments, is intended solely for the use of the individual or entity to which it is addressed. This communication may contain information that is protected from disclosure under State and/or Federal law. Please notify the sender immediately if you have received this communication in error and delete this email from your system. If you are not the intended recipient, you are requested not to disclose, copy, distribute or take any action in reliance on the contents of this information.