Skip to content

Commit 5a4e4a1

Browse files
kwwalljeremiahjstacey
authored andcommitted
Misc prep issue483 (#484)
* Clarify instructions how to checkout a specific new branch. * Update info with respect to ESAPI mailing lists (move from Mailman to Google Groups). * Minor updates to release notes (mostly about deprecated and/or removed methods). * Changes in support of GitHub Issue # 483: 1. Change ESAPI version from 2.2.0.0-RC2-SNAPSHOT to 2.2.0.0-RC2. 2. Change references to ESAPI mailing lists from Mailman to Google Groups. 3. Update dependencies: a) org.apache.commons:commons-collections4 -- from 4.2 to 4.3 b) org.apache.xmlgraphics:batik-css -- from 1.10 to 1.11 c) org.bouncycastle:bcprov-jdk15on -- from 1.60 to 1.61 4. Update org.sonatype.oss:oss-parent -- from version 5 to version 9 * Correctly marked several methods that were intended to be deprecated back in ESAPI 1.6, but were incorrectly so designated. Decided to leave these around for a while since compiler would not issue proper warning the way they were. * More clearly document via comments the intended fall-through in a switch statement. * Remove unneeded cast to String that was giving compiler warning. * Remove unneeded cast to String that was causing compiler warning. * Mark method as @deprecated to get rid of compiler warning. * Delete the previously deprecated method getSerialVersionUID(). Noted in 2.2.0.0 release notes. * Mark previously deprecated method as @deprecated to suppress compiler warning. * Changes to stop calling deprecated method SecurityConfiguration.getDisableIntrusionDetection(). Still needs a little work. (See comment in code regarding static import.) * Mark previously deprecated method as @deprecated to suppress compiler warning. * Remove some redundant casts to suppress compiler warnings. * Remove redundant case to suppress compiler warnings. * Delete previously deprecated protected field, MAX_REDIRECT_LOCATION. No replacement; noted in 2.2.0.0 release notes. * Remove unnecessary cast to suppress compiler warning. * Mark previously deprecated method as @deprecated to suppress compiler warnings. * Added serialVersionUID field to suppress compiler warning. * Remove unnecessary cast to suppress compiler warnings. * Delete unnecessary cast to suppress compiler warning. * Add method testDeprecatedMethods() for simple sanity check. * Upgrade AntiSamy dependency from 1.5.7 to 1.5.8. * Updated with respect to moving to AntiSamy 1.5.8 were all the CVEs have been addressed. * Fix failing tests that I accidentally broke. Thanks and a tip of the hat to @jeremiahjstacey for pointers of how to fix this.
1 parent a93c6d8 commit 5a4e4a1

23 files changed

+113
-70
lines changed

CONTRIBUTING-TO-ESAPI.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ Steps to work with ESAPI:
6969
forked repo created in previous step)
7070
3. Create a new branch to work on an issue. I usually name the branch
7171
'issue-#' where '#' is the GitHub issue # is will be working on, but
72-
you can call it whatever.
72+
you can call it whatever. E.g.,
73+
git checkout -b issue-#
7374
4. Work on the GitHub issue on this newly created issue-# branch.
7475
5. Make sure everything builds correctly and all the JUnit tests pass
7576
('mvn test'). [Note: On occasion, there may be a failure in

README.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ When reporting an issue, please be clear and try to ensure that the ESAPI develo
4242
### Find an Issue?
4343
If you have found a bug, then create an issue on the esapi-legacy-java repo: https://github.com/ESAPI/esapi-java-legacy/issues
4444

45-
NOTE: Please do NOT use GitHub issues to ask questions about ESAPI. If you wish to do this, post to either of the 2 mailing lists found at the bottom of this page. If we find questions as GitHub issues, we simply will close them and direct you to do this anyhow.
45+
NOTE: Please do NOT use GitHub issues to ask questions about ESAPI. If you wish to do this, post to either of the 2 mailing lists (now on Google Groups) found at the bottom of this page. If we find questions as GitHub issues, we simply will close them and direct you to do this anyhow.
4646

4747
### Find a Vulnerability?
4848
If you have found a vulnerability in ESAPI legacy, first search the issues list (see above) to see if it has already been reported. If it has not, then please contact both Kevin W. Wall (kevin.w.wall at gmail.com) and Matt Seil (matt.seil at owasp.org) directly. Please do not report vulnerabilities via GitHub issues or via the ESAPI mailing lists as we wish to keep our users secure while a patch is implemented and deployed. If you wish to be acknowledged for finding the vulnerability, then please follow this process. (Eventually, we would like to have BugCrowd handle this, but that's still a ways off.) Also, when you post the email describing the vulnerability, please do so from an email address that you usually monitor.
@@ -64,5 +64,12 @@ Channel: #esapi<br/>
6464
Webchat http://webchat.freenode.net/
6565

6666
*Mailing lists:*
67-
[ESAPI-Users mailing list](https://lists.owasp.org/mailman/listinfo/esapi-user/) and
68-
[ESAPI-Developers mailing list](https://lists.owasp.org/mailman/listinfo/esapi-dev/)
67+
As of 2019-03-25, ESAPI's 2 mailing lists were officially moved OFF of their Mailman mailing lists to a new home on Google Groups.
68+
69+
The names of the 2 Google Groups are "[esapi-project-users](mailto:[email protected])" and "[esapi-project-dev](mailto:[email protected])", which you may POST to after you subscribe to them via "[Subscribe to ESAPI Users list](https://groups.google.com/forum/#!forum/esapi-project-users/join)" and "[Subscribe to ESAPI Developers list](https://groups.google.com/forum/#!forum/esapi-project-dev/join)" respectively.
70+
71+
Old archives for the old Mailman mailing lists for ESAPI-Users and ESAPI-Dev are still available at https://lists.owasp.org/pipermail/esapi-users/ and https://lists.owasp.org/pipermail/esapi-dev/ respectively.
72+
73+
For a general overview of Google Groups and its web interface, see https://groups.google.com/forum/#!overview
74+
75+
For assistance subscribing and unsubscribing to Google Groups, see https://webapps.stackexchange.com/questions/13508/how-can-i-subscribe-to-a-google-mailing-list-with-a-non-google-e-mail-address/15593#15593

documentation/esapi4java-core-2.2.0.0-release-notes.txt

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ Executive Summary: Important Things to Note for this Release
1111
------------------------------------------------------------
1212
* Upgrade to require JDK 7 or later. JDK 6 is no longer supported by ESAPI.
1313
* Upgrade to require Java Servlet API 3.0.1 or later. See "Appendix: Dependency Updates (as reflected in pom.xml)" below for additional details.
14-
* 106 GitHub issues closed. (Note: Includes previously incorrectly closed issues that were reopened, fixed, and then closed again.)
14+
* 100+ GitHub issues closed. (Note: Includes previously incorrectly closed issues that were reopened, fixed, and then closed again.)
1515
* Upgraded versions of several ESAPI dependencies (i.e., 3rd party jars), including several that had unpatched CVEs. See "Appendix: Dependency Updates (as reflected in pom.xml)" below for full details.
1616
* Known vulnerabilities still not addressed:
17-
- ESAPI uses "vulnerable" version of AntiSamy (1.5.7), which is supposedly vulnerable to CVE-2018-100643. I have confirmed that AntiSamy--as currently used by ESAPI--is NOT vulnerable to this CVE as it only uses AntiSamy's CleanResults.getCleanHTML(). Furthermore, I believe that this CVE is a false positive. See my comments on this AntiSamy issue at https://github.com/nahsra/antisamy/issues/32#issuecomment-449595373.
1817
- There is this critical CVE in log4j 2.x before 2.8.2: CVE-2017-5645. It is a Java deserialization vulnerability that can lead to arbitrary remote code execution. Some private vulnerability databases claim that this same vulnerability is present in log4j 1.x even though the CVE itself does not claim that. However, examination of this CVE shows that the vulnerability is associated with implementations of TcpSocketServer and UdpSocketServer, which implement fully functional socket servers that can be used to listen on network connections and record log events sent to server from various client applications. For ESAPI to be vulnerable to that, first someone would have to have an implementation of wone of those servers running and secondly, they would have to change ESAPI's log4j.xml configuration file so that it uses log4j's SocketAppender rather than the default ConsoleAppender that ESAPI's default deployment uses. Thus even if this vulnerability were present in log4j 1.x, ESAPI's use of ConsoleAppender makes it a non-issue.
1918
- There is a known and unpatched vulnerability in the SLF4J Extensions that some vulnerability scanners may pick up and associate with ESAPI's use of slf4j-api-1.7.25.jar. (Note that OWASP Dependency Check does NOT flag this vulnerability [CVE-2018-8088], but others may.) According to NVD, this vulnerability is associated with "org.slf4j.ext.EventData in the slf4j-ext module in QOS.CH SLF4J before 1.8.0-beta2". Fortunately, I have confirmed that this Java deserialization does not impact ESAPI. First off, the default configuration of ESAPI.properties does not use SLF4J, but even if an application should choose to use it, ESAPI does not include the slf4j-ext jar and it has been confirmed that the vulnerable class (org.slf4j.ext.EventData) is not included in the slf4j-api jar that ESAPI does. Unfortunately, this CVE is not patched in the latest SLF4J packages, so even if we were to update it to latest version (currently 1.80-beta2, as of 12/31/2018), any scanners that associate ESAPI with CVE-2018-8088 would still have this false positive. But the important thing to ESAPI users is to know that if this CVE is identified for ESAPI, that it is a false positive.
2019
- Otherwise, ESAPI 2.2.0.0 addresses all know CVEs except for CVE-2013-5960 (which I have fixed in a private BitBucket repo, but getting it to be backward compatible is proving to be more difficult than anticipated.) Besides, if you want to use encryption in Java, I'd highly recommend using Google Tink, which is much more fully featured than ESAPI. (Tink allows key rotation, storing keys in various cloud HSMs, etc.)
@@ -37,7 +36,7 @@ That's 2593 NEW tests!!!
3736

3837
GitHub Issues fixed in this release
3938
[i.e., since 2.1.0.1 release on 2016-Feb-05]
40-
106 issues closed
39+
More than 100 issues closed
4140

4241
Issue # GitHub Issue Title
4342
----------------------------------------------------------------------------------------------
@@ -148,6 +147,10 @@ Issue # GitHub Issue Title
148147
462 Allow configurable init parameter in ESAPIFilter for unauthorized requests
149148
463 Create release notes for next ESAPI release
150149
465 Update both ESAPI.properties files to show comment for ESAPI logger support for SLF4J
150+
471 Bump ESAPI release # to 2.2.0.0
151+
476 DefaultValidator.getValidInput implementation ignores 'canonicalize' method parameter
152+
478 Remove obsolete references to Google Code in pom.xml and any other release prep
153+
483 More miscellaneous prep work for ESAPI 2.2.0.0 release
151154

152155

153156
-----------------------------------------------------------------------------
@@ -179,6 +182,9 @@ Issue # GitHub Issue Title
179182
public static String encodeObject( java.io.Serializable serializableObject )
180183
public static String encodeObject( java.io.Serializable serializableObject, int options )
181184
public static Object decodeToObject( String encodedObject )
185+
186+
483 More miscellaneous prep work for ESAPI 2.2.0.0 release
187+
Specifically, CipherText.getSerialVersionUID() and DefaultSecurityConfiguration.MAX_FILE_NAME_LENGTH have actually been deleted from the ESAPI code base. For the former, use CipherText.cipherTextVersion() instead. For the latter, there is no replacement. (This wasn't being used, but it was set to 1000 in case you're wondering.)
182188

183189
* Various properties in ESAPI.properties were changed in a way that might affect your application:
184190
439 Tighten ESAPI defaults to disallow dubious file suffixes
@@ -235,12 +241,13 @@ Project co-leaders
235241
Matt Seil (xeno6696)
236242

237243
Special shout-outs to:
238-
Jeremiah Stacey (jeremiahjstacey)
244+
Jeremiah Stacey (jeremiahjstacey) -- All around ESAPI support and JUnit test case developer extraordinaire
245+
Dave Wichers (davewichers) - for Maven Central / Sonatype help
239246

240247
List of all PRs closed since 2.1.0.1 (2016-Feb-05) -
241248
List includes merged AND rejected PRs
242249

243-
52 Closed PRs since 2.1.0.1 release
250+
53 Closed PRs since 2.1.0.1 release
244251
===================================
245252
#362 by artfullyContrived was merged on Feb 9, 2016 -- Update pom.xml to use latest Maven plugins
246253
#367 by drm2 was merged on Apr 9, 2016 -- Adding IntelliJ Tests setup documentation
@@ -296,12 +303,13 @@ List of all PRs closed since 2.1.0.1 (2016-Feb-05) -
296303
#470 by jeremiahjstacey was merged on Jan 15, 2019 -- JavaLogFactory Thread Safety #286
297304
#472 by jeremiahjstacey was merged on Jan 21, 2019 -- Issue #31 MySQLCodec Updates
298305
#475 by jeremiahjstacey was merged on Jan 27, 2019 -- Issue #188 resolution proof: Test updates
306+
#477 by jeremiajjstacey was merged on Feb 02, 2019 -- $476 DefaultValidator.getValidInput uses canonicalize method argument
299307

300308
List of contributors of *merged* PRs, listed (rather naively) by # or merged PRs:
301309
# merged PRs GitHub ID
302310
-------------------------
303311
19 xeno6696
304-
8 jeremiahjstacey
312+
10 jeremiahjstacey
305313
8 kwwall
306314
2 artfullyContrived
307315
2 augustd
@@ -312,8 +320,6 @@ List of contributors of *merged* PRs, listed (rather naively) by # or merged PRs
312320
1 NiklasMehner
313321
1 simon0117
314322
1 sunnypav
315-
========================
316-
47 merged PRs + 6 closed PRs = 53 PRs merged or closed
317323

318324

319325
Thanks you all for your time and effort to ESAPI and making it a better project.
@@ -326,15 +332,15 @@ Many 3rd party dependencies had known vulnerabilities (e.g., CVEs reported to NI
326332

327333
Note that in many places, these 3rd party dependencies were not *direct* dependencies, but rather *transitive* and since we are not able to force a direct 3rd party dependency to update their dependencies, in several cases, we have used Maven's <exclusions> tag to exclude specific transitive dependencies andthen explictly included their latest patched versions that did not cause JUnit test failures.
328334

329-
Because the landscape of known vulnerabilities in 3rd party components is constantly changing and the OWASP ESAPI contributors do not have access to all private vulnerability databases, we may have inevitably missed some. In other cases, we have examined reported vulnerabilities and confirmed that as ESAPI uses and deploys the code in its default configuration, the claimed vulnerabilities are not exploitable. (Such is the case for CVE-2018-100643 as it related to AntiSamy 1.5.7 and earlier.)
335+
Because the landscape of known vulnerabilities in 3rd party components is constantly changing and the OWASP ESAPI contributors do not have access to all private vulnerability databases, we may have inevitably missed some. In other cases, we have examined reported vulnerabilities and confirmed that as ESAPI uses and deploys the code in its default configuration, the claimed vulnerabilities are not exploitable.
330336

331337
The following lists all new and updated dependencies. If a dependency is not listed below, the version used since ESAPI release 2.1.0.1 has not changed.
332338

333339
New compile-time / runtime direct dependencies:
334340
org.slf4j:slf4j-api:1.7.25 - Not actually needed in your application's classpath unless ESAPI.Logger is configured to use org.owasp.esapi.logging.slf4j.Slf4JLogFactory.
335341

336342
New JUnit dependencies
337-
org.bouncycastle:bcprov-jdk15on:1.60
343+
org.bouncycastle:bcprov-jdk15on:1.61
338344
org.powermock:powermock-api-mockito2:2.0.0-beta.5
339345
org.powermock:powermock-module-junit4:2.0.0-beta.5
340346

@@ -345,12 +351,12 @@ Updated direct dependencies, by Maven scope
345351

346352
compile:
347353
commons-fileupload:commons-fileupload: 1.3.1 -> 1.3.3
348-
org.apache.commons:commons-collections4: 3.2.2 -> 4.2
354+
org.apache.commons:commons-collections4: 3.2.2 -> 4.3
349355
commons-beanutils:commons-beanutils-core: 1.8.3 -> 1.9.3
350356
com.io7m.xom:xom: 1.2.5 -> 1.2.10
351357
org.apache-extras.beanshell:bsh: 2.0b4 -> 2.0b6
352-
org.owasp.antisamy:antisamy: 1.5.3 -> 1.5.7
353-
org.apache.xmlgraphics:batik-css: 1.8 -> 1.10
358+
org.owasp.antisamy:antisamy: 1.5.3 -> 1.5.8
359+
org.apache.xmlgraphics:batik-css: 1.8 -> 1.11
354360

355361
Transitive runtime dependencies that ESAPI has now directly taken control off because of known vulnerabilities or other incompatibilities:
356362
xalan:xalan: 2.7.0 -> 2.7.2

pom.xml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>org.owasp.esapi</groupId>
55
<artifactId>esapi</artifactId>
6-
<version>2.2.0.0-RC2-SNAPSHOT</version>
6+
<version>2.2.0.0-RC2</version>
77
<packaging>jar</packaging>
88

99
<prerequisites>
@@ -13,7 +13,7 @@
1313
<parent>
1414
<groupId>org.sonatype.oss</groupId>
1515
<artifactId>oss-parent</artifactId>
16-
<version>5</version>
16+
<version>9</version>
1717
</parent>
1818

1919
<licenses>
@@ -47,19 +47,19 @@
4747

4848
<mailingLists>
4949
<mailingList>
50-
<name>ESAPI-Users</name>
51-
<subscribe>https://lists.owasp.org/mailman/listinfo/esapi-user/</subscribe>
52-
<unsubscribe>https://lists.owasp.org/mailman/listinfo/esapi-user/</unsubscribe>
53-
<post>mailto:esapi-users@lists.owasp.org</post>
54-
<archive>https://lists.owasp.org/pipermail/esapi-users/</archive>
50+
<name>ESAPI-Project-Users</name>
51+
<subscribe>https://groups.google.com/a/owasp.org/forum/#!forum/esapi-project-users/join</subscribe>
52+
<unsubscribe>https://groups.google.com/a/owasp.org/forum/#!forum/esapi-project-users/unsubscribe</unsubscribe>
53+
<post>mailto:esapi-project-[email protected]</post>
54+
<archive>(Pre 3/25/2019) https://lists.owasp.org/pipermail/esapi-users/</archive>
5555
<!--This is the OWASP ESAPI mailing list for ESAPI users, regardless of programming language. For example, ESAPI users with questions about ESAPI for Java or ESAPI for PHP would both post here.-->
5656
</mailingList>
5757
<mailingList>
58-
<name>ESAPI-Developers</name>
59-
<subscribe>https://lists.owasp.org/mailman/listinfo/esapi-dev/</subscribe>
60-
<unsubscribe>https://lists.owasp.org/mailman/listinfo/esapi-dev/</unsubscribe>
61-
<post>mailto:esapi-dev@lists.owasp.org</post>
62-
<archive>https://lists.owasp.org/pipermail/esapi-dev/</archive>
58+
<name>ESAPI-Project-Dev</name>
59+
<subscribe>https://groups.google.com/a/owasp.org/forum/#!forum/esapi-project-dev/join</subscribe>
60+
<unsubscribe>https://groups.google.com/a/owasp.org/forum/#!forum/esapi-project-dev/unsubscribe</unsubscribe>
61+
<post>mailto:esapi-project-[email protected]</post>
62+
<archive>(Pre 3/25/2019) https://lists.owasp.org/pipermail/esapi-dev/</archive>
6363
<!--This is the OWASP ESAPI mailing list for ESAPI for Java developers. While the list is not closed, the topics of discussion are likely to be less relevant to those only using ESAPI. Note that this is the list for ESAPI for Java. Most other language implementations, such ESAPI for PHP, have their own mailing lists.-->
6464
</mailingList>
6565
<mailingList>
@@ -166,7 +166,7 @@
166166
<dependency>
167167
<groupId>org.apache.commons</groupId>
168168
<artifactId>commons-collections4</artifactId>
169-
<version>4.2</version>
169+
<version>4.3</version>
170170
</dependency>
171171
<dependency>
172172
<groupId>log4j</groupId>
@@ -203,7 +203,7 @@
203203
<dependency>
204204
<groupId>org.owasp.antisamy</groupId>
205205
<artifactId>antisamy</artifactId>
206-
<version>1.5.7</version>
206+
<version>1.5.8</version>
207207
<exclusions>
208208
<exclusion>
209209
<groupId>xml-apis</groupId>
@@ -233,7 +233,7 @@
233233
<dependency>
234234
<groupId>org.apache.xmlgraphics</groupId>
235235
<artifactId>batik-css</artifactId>
236-
<version>1.10</version>
236+
<version>1.11</version>
237237
</dependency>
238238
<dependency>
239239
<groupId>xerces</groupId>
@@ -251,7 +251,7 @@
251251
<dependency>
252252
<groupId>org.bouncycastle</groupId>
253253
<artifactId>bcprov-jdk15on</artifactId>
254-
<version>1.60</version>
254+
<version>1.61</version>
255255
<scope>test</scope>
256256
</dependency>
257257
<dependency>

0 commit comments

Comments
 (0)