@@ -134,6 +134,10 @@ public void testGetValidSafeHTML() throws Exception {
134
134
//
135
135
// This TBD CVE should arguably get the same CVSSv3 store as the AntiSamy
136
136
// CVE-2021-35043 as the are very similar.
137
+ //
138
+ // Updated: Requested CVE from GitHub CNA on 4/23/2022. See
139
+ // https://github.com/ESAPI/esapi-java-legacy/security/advisories/GHSA-q77q-vx4q-xx6q
140
+ // (Which may not be published yet, but is remediated. Waiting on CVE ID to publish.)
137
141
@ Test
138
142
public void testJavaScriptURL () throws Exception {
139
143
System .out .println ("testJavaScriptURL" );
@@ -225,30 +229,31 @@ public void testOnfocusAfterStyleClosing() throws Exception {
225
229
ValidationErrorList errors = new ValidationErrorList ();
226
230
String input = "<select<style/>k<input<</>input/onfocus=alert(1)>" ;
227
231
assertTrue (instance .isValidSafeHTML ("test10" , input , 100 , false , errors ));
228
- String expected = "k<input/onfocus=alert(1)>" ; // Suspicious??? Doesn't agree w/ AntiSamy test. FIXME?
232
+ String expected = "k<input/onfocus=alert(1)>" ; // Suspicious? Doesn't agree w/ AntiSamy test.
229
233
String output = instance .getValidSafeHTML ("escaping style tag attack with onfocus attribute" , input , 250 , false );
230
234
assertEquals (expected , output );
231
235
assertTrue (errors .size () == 0 );
232
236
}
233
237
234
- // FIXME: This problem is a DoS issue that lies within Neko that is only available for Java 8 and later.
235
- // However, the latest version that is available for Java 7 is Neko 2.24. It is fixed in later versions
236
- // that are not available for JDK 7 though. The fix will just start using the one the latest Java 8 version
237
- // of AntiSamy is using and remove our <exclusion> and specific 2.24 dependency from our pom.xml and use whatever
238
- // AntiSamy provides. All we should need to do is that and remove the @Ignore annotation here.
238
+ // This test was a DoS issue (CVE-2022-28366) within a transitive dependency (Neko-HtmlUnit) that AntiSamy uses.
239
+ // It is fixed only in Neko-HtmlUnit 2.27 and later, but all those releases are only available for Java 8 and later.
240
+ //
241
+ // When the input here is called with AntiSamy.scan().getCleanHtml(), AntiSamy throws a ScanException.
242
+ // (For details, see the AntiSamy JUnit test case "testMalformedPIScan" in
243
+ // https://github.com/nahsra/antisamy/blob/main/src/test/java/org/owasp/validator/html/test/AntiSamyTest.java.)
244
+ //
239
245
@ Test
240
- @ Ignore
241
246
public void testNekoDOSWithAnHTMLComment () throws Exception {
242
- /**
243
- * FIXME: This unit test needs to pass before the next ESAPI release once ESAPI starts using JDK 8 as min JDK.
244
- */
247
+ System .out .println ("testNekoDOSWithAnHTMLComment" );
248
+
245
249
Validator instance = ESAPI .validator ();
246
250
ValidationErrorList errors = new ValidationErrorList ();
247
251
String input = "<!--><?a/" ;
248
- assertTrue (instance .isValidSafeHTML ("test11" , input , 100 , false , errors ));
249
- String expected = "<!--><?a/" ;
252
+ assertTrue (instance .isValidSafeHTML ("test11" , input , 100 , false , errors )); // Safe bc "" gets returned!!!
253
+
254
+ String expectEmpty = "" ;
250
255
String output = instance .getValidSafeHTML ("escaping style tag attack" , input , 250 , false );
251
- assertEquals (expected , output );
256
+ assertEquals (expectEmpty , output ); // Because AntiSamy's CleanResults.getCleanHTML() should throw and is caught.
252
257
assertTrue (errors .size () == 0 );
253
258
}
254
259
}
0 commit comments