Skip to content

Commit 8e69d0e

Browse files
committed
New release notes for ESAPI 2.5.4.0.
1 parent 977dd2b commit 8e69d0e

File tree

1 file changed

+205
-0
lines changed

1 file changed

+205
-0
lines changed
Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
Release notes for ESAPI 2.5.4.0
2+
Release date: 2024-05-28
3+
Project leaders:
4+
-Kevin W. Wall <[email protected]>
5+
-Matt Seil <[email protected]>
6+
7+
Previous release: ESAPI 2.5.3.1, 2023-12-01
8+
9+
10+
Executive Summary: Important Things to Note for this Release
11+
------------------------------------------------------------
12+
This is a patch release with a few bug fixes and dependency updates. While the AntiSamy 1.7.5 update was intended to address an XSS vulnerability (CVE-2024-23635), the ESAPI team verified that this vulnerability did not affect the default configuration of ESAPI and its strict AntiSamy policy file, antisamy-esapi.xml. (Our AntiSamy policy file has the 'preserveComments' directive disabled.)
13+
14+
There is one important issue that was patched (GitHub issue # 839) that has a side-effect. In particular, if you have ESAPI configured to use JUL (i.e., Java Util Logging) as your default logger (i.e., you have ESAPI.Logger set to 'org.owasp.esapi.logging.java.JavaLogFactory', then you MUST delete your 'esapi-java-logging.properties' to set some of the JUL properties. This file was conflicting with the other uses of JUL not used through ESAPI. If you start ESAPI 2.5.4.0 and this file is found as a resource, then a ConfigurationException will be thrown and the exception message will direct you to our GitHub wiki page, https://github.com/ESAPI/esapi-java-legacy/wiki/Configuring-the-JavaLogFactory
15+
16+
Notes if you are not updating from the immediate previous release. release 2.5.3.1:
17+
* You need to read through the series of release notes FIRST, going in order.
18+
* For example, if you were updating from an older ESAPI release (say, 2.3.0.0), you should go back and FIRST read all the subsequent release notes in turn. For instance, if you are currently on release 2.3.0.0 and upgrading to (say) release 2.x.y.z, you should MINIMALLY read the sections "Changes Requiring Special Attention" in each of the subsequent release notes. So, going from release 2.3.0.0 to 2.x.y.z, you should in turn, read:
19+
20+
esapi4java-core-2.4.0.0-release-notes.txt
21+
esapi4java-core-2.5.0.0-release-notes.txt
22+
esapi4java-core-2.5.1.0-release-notes.txt
23+
esapi4java-core-2.5.2.0-release-notes.txt
24+
...etc., up through the current set of release notes...
25+
esapi4java-core-2.x.y.z-release-notes.txt
26+
27+
in that order. YOU HAVE BEEN WARNED!!! (These release notes are too large to put all this in a given document; very few read them thoroughly as it is.)
28+
29+
If your SCA tool is reporting any CVE from a direct or transitive dependency in ESAPI, before reporting it as an GitHub issue, please make sure that you review the vulnerability analysis written up in https://github.com/ESAPI/esapi-java-legacy/blob/develop/Vulnerability-Summary.md. Please email us or contact us in our GitHub Discussions page if you have questions about this. See also the SECURITY.md file to report any security issues with ESAPI.
30+
31+
You are encouraged to review the vulnerability analysis written up in https://github.com/ESAPI/esapi-java-legacy/blob/develop/Vulnerability-Summary.md and email us or contact us in our GitHub Discussions page if you have questions.
32+
33+
34+
=================================================================================================================
35+
36+
Basic ESAPI facts
37+
-----------------
38+
39+
ESAPI 2.5.3.1 release:
40+
207 Java source files
41+
4293 JUnit tests in 131 Java source files (0 failures, 0 errors, 0 tests skipped)
42+
43+
ESAPI 2.5.4.0 release:
44+
207 Java source files
45+
4297 JUnit tests in 131 Java source files (0 failures, 0 errors, 0 tests skipped)
46+
47+
8 GitHub Issues closed in this release, including those we've decided not to fix (marked 'wontfix' and 'falsepositive').
48+
(Reference: https://github.com/ESAPI/esapi-java-legacy/issues?q=is%3Aissue+state%3Aclosed+updated%3A%3E%3D2023-12-01)
49+
50+
Issue # GitHub Issue Title
51+
----------------------------------------------------------------------------------------------
52+
824 DefaultEncoder / getCanonicalizedURI returns mix encoding for HTML special characters
53+
826 Fix Encoder.getCanonicalizedURI(URI) for the test case of a double-ampersand in the HTML Query
54+
827 HTMLEntityCodec Mysteriously decodes &or
55+
831 java.io.FileNotFoundException Error in Logs When ESAPI.properties and validation.properties are in resources. and the application is up ,features are not working.
56+
832 easpi .properties and validation properties are present but still it is throwing error and the application is failing do you have any solution for this
57+
835 Validator.isValidSafeHTML() is vulnerable as per CVE-2023-4780
58+
837 Validation does not work with esapi jakarta jar
59+
839 ConcurrentModificationException
60+
61+
62+
-----------------------------------------------------------------------------
63+
64+
Changes Requiring Special Attention
65+
66+
-----------------------------------------------------------------------------
67+
Important Note affecting ESAPI 2.5.4.0 and later:
68+
* If you are using JUL for ESAPI logging, you will need to delete esapi-java-logging.properties file so it is not found as a resource stream. Failure to do so will result in a ConfigurationException being thrown. For details, see our GitHub wiki page, https://github.com/ESAPI/esapi-java-legacy/wiki/Configuring-the-JavaLogFactory
69+
70+
Important JDK Support Announcement
71+
* ESAPI 2.3.0.0 was the last Java release to support Java 7. ESAPI 2.4.0 requires using Java 8 or later. See the ESAPI 2.4.0.0 release notes (https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/esapi4java-core-2.4.0.0-release-notes.txt) for details as to the reason.
72+
- This means if your project requires Java 7, you must use ESAPI 2.3.0.0 or earlier.
73+
74+
Important ESAPI Logging Changes
75+
76+
* Since ESAPI 2.5.0.0, support for logging directly via Log4J 1 has been removed. (This was two years after it haveing first been deprecated.) Thus, you only choice of ESAPI logging are
77+
- java.util.logging (JUL), which as been the default since ESAPI 2.2.1.0.
78+
* Set ESAPI.Logger=org.owasp.esapi.logging.java.JavaLogFactory in your ESAPI.properties file.
79+
- SLF4J (with your choice of supported SLF4J logging implemmentation)
80+
* Set ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory in your ESAPI.properties file.
81+
* Logger configuration notes - If you are migrating from prior to ESAPI 2.2.1.1, you will need to update your ESAPI.properties file as logging-related configuration as per the ESAPI 2.2.1.1 release notes, which may be found at:
82+
https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/esapi4java-core-2.2.1.1-release-notes.txt#L39-L78
83+
84+
If you use ESAPI 2.5.0.0 or later, you will get an ClassNotFoundException as the root cause if you still have your ESAPI.Logger property set to use Log4J because the org.owasp.esapi.logger.log4j.Log4JFactory class has been completely removed from the ESAPI jar. If you are dead set on continuing to use Log4J 1, you ought to be able to do so via SLF4J. The set up for Log4J 1 (which has not be tested), should be similar to configure ESAPI to use SLF4J with Log4J 2 as described here:
85+
https://github.com/ESAPI/esapi-java-legacy/wiki/Using-ESAPI-with-SLF4J#slf4j-using-log4j-2x
86+
87+
-----------------------------------------------------------------------------
88+
89+
Remaining Known Issues / Problems
90+
91+
-----------------------------------------------------------------------------
92+
None known, other than the remaining open issues on GitHub.
93+
94+
-----------------------------------------------------------------------------
95+
96+
Other changes in this release, some of which not tracked via GitHub issues
97+
98+
-----------------------------------------------------------------------------
99+
100+
* Minor updates to README.md file with respect to version information.
101+
102+
-----------------------------------------------------------------------------
103+
104+
Developer Activity Report (Changes between release 2.5.3.1 and 2.5.4.0, i.e., between 2023-12-01 and 2024-05-28)
105+
Generated manually (this time) -- all errors are the fault of kwwall and his inability to do simple arithmetic.
106+
107+
Developer Total Total Number # Merged
108+
(GitHub ID) commits of Files Changed PRs
109+
========================================================
110+
xeno6696 5 4 1
111+
jeremiahjstacey 2 4 1
112+
dependabot 1 1 1
113+
mpreziuso 1 2 1
114+
kwwall 6 6 0 (direct merge)
115+
========================================================
116+
Total PRs: 4
117+
118+
-----------------------------------------------------------------------------
119+
120+
CHANGELOG: Create your own. May I suggest:
121+
122+
git log --stat --since=2023-12-01 --reverse --pretty=medium
123+
124+
which will show all the commits since just after the previous (2.5.3.1) release.
125+
126+
Alternately, you can download the most recent ESAPI source and run
127+
128+
mvn site
129+
130+
which will create a CHANGELOG file named 'target/site/changelog.html'
131+
132+
133+
-----------------------------------------------------------------------------
134+
135+
Direct and Transitive Runtime and Test Dependencies:
136+
137+
$ mvn -B dependency:tree
138+
...
139+
[INFO] --- maven-dependency-plugin:3.6.1:tree (default-cli) @ esapi ---
140+
[INFO] org.owasp.esapi:esapi:jar:2.5.4.0
141+
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided
142+
[INFO] +- javax.servlet.jsp:javax.servlet.jsp-api:jar:2.3.3:provided
143+
[INFO] +- xom:xom:jar:1.3.9:compile
144+
[INFO] +- commons-beanutils:commons-beanutils:jar:1.9.4:compile
145+
[INFO] | +- commons-logging:commons-logging:jar:1.2:compile
146+
[INFO] | \- commons-collections:commons-collections:jar:3.2.2:compile
147+
[INFO] +- commons-configuration:commons-configuration:jar:1.10:compile
148+
[INFO] +- commons-lang:commons-lang:jar:2.6:compile
149+
[INFO] +- commons-fileupload:commons-fileupload:jar:1.5:compile
150+
[INFO] +- org.apache.commons:commons-collections4:jar:4.5.0-M1:compile
151+
[INFO] +- org.apache-extras.beanshell:bsh:jar:2.0b6:compile
152+
[INFO] +- org.owasp.antisamy:antisamy:jar:1.7.5:compile
153+
[INFO] | +- org.apache.httpcomponents.client5:httpclient5:jar:5.3.1:compile
154+
[INFO] | | \- org.apache.httpcomponents.core5:httpcore5-h2:jar:5.2.4:compile
155+
[INFO] | +- org.apache.httpcomponents.core5:httpcore5:jar:5.2.4:compile
156+
[INFO] | +- org.apache.xmlgraphics:batik-css:jar:1.17:compile
157+
[INFO] | | +- org.apache.xmlgraphics:batik-shared-resources:jar:1.17:compile
158+
[INFO] | | +- org.apache.xmlgraphics:batik-util:jar:1.17:compile
159+
[INFO] | | | +- org.apache.xmlgraphics:batik-constants:jar:1.17:compile
160+
[INFO] | | | \- org.apache.xmlgraphics:batik-i18n:jar:1.17:compile
161+
[INFO] | | \- org.apache.xmlgraphics:xmlgraphics-commons:jar:2.9:compile
162+
[INFO] | +- org.htmlunit:neko-htmlunit:jar:3.11.1:compile
163+
[INFO] | +- xerces:xercesImpl:jar:2.12.2:compile
164+
[INFO] | \- xml-apis:xml-apis-ext:jar:1.3.04:compile
165+
[INFO] +- org.slf4j:slf4j-api:jar:2.0.13:compile
166+
[INFO] +- xml-apis:xml-apis:jar:1.4.01:compile
167+
[INFO] +- commons-io:commons-io:jar:2.16.1:compile
168+
[INFO] +- com.github.spotbugs:spotbugs-annotations:jar:4.8.5:compile
169+
[INFO] | \- com.google.code.findbugs:jsr305:jar:3.0.2:compile
170+
[INFO] +- commons-codec:commons-codec:jar:1.17.0:test
171+
[INFO] +- junit:junit:jar:4.13.2:test
172+
[INFO] +- org.bouncycastle:bcprov-jdk15on:jar:1.70:test
173+
[INFO] +- org.hamcrest:hamcrest-core:jar:2.2:test
174+
[INFO] | \- org.hamcrest:hamcrest:jar:2.2:test
175+
[INFO] +- org.powermock:powermock-api-mockito2:jar:2.0.9:test
176+
[INFO] | \- org.powermock:powermock-api-support:jar:2.0.9:test
177+
[INFO] +- org.mockito:mockito-core:jar:3.12.4:test
178+
[INFO] | +- net.bytebuddy:byte-buddy:jar:1.11.13:test
179+
[INFO] | +- net.bytebuddy:byte-buddy-agent:jar:1.11.13:test
180+
[INFO] | \- org.objenesis:objenesis:jar:3.2:test
181+
[INFO] +- org.powermock:powermock-core:jar:2.0.9:test
182+
[INFO] | \- org.javassist:javassist:jar:3.27.0-GA:test
183+
[INFO] +- org.powermock:powermock-module-junit4:jar:2.0.9:test
184+
[INFO] | \- org.powermock:powermock-module-junit4-common:jar:2.0.9:test
185+
[INFO] +- org.powermock:powermock-reflect:jar:2.0.9:test
186+
[INFO] \- org.openjdk.jmh:jmh-core:jar:1.37:test
187+
[INFO] +- net.sf.jopt-simple:jopt-simple:jar:5.0.4:test
188+
[INFO] \- org.apache.commons:commons-math3:jar:3.6.1:test
189+
[INFO] ------------------------------------------------------------------------
190+
[INFO] BUILD SUCCESS
191+
[INFO] ------------------------------------------------------------------------
192+
[INFO] Total time: 2.133 s
193+
[INFO] Finished at: 2024-05-28T21:48:33-04:00
194+
[INFO] ------------------------------------------------------------------------
195+
196+
-----------------------------------------------------------------------------
197+
198+
Acknowledgments:
199+
A special hat tip to Arshan Dabirsiaghis, original creator of AntiSamy and the creator of the antisamy-esapi.xml file, the ultrastrict AntiSamy policy used by ESAPI. That avoided a vulnerability that affected AntiSamy itself, so kudos to that foresite.
200+
A shutout to Michele Preziuso for the PR that updated AntiSamy, added a test, and avoided the convergence issue that resulted in me having to reject the Snyk and Dependabot PRs. I appreciate you saving me having to do the work.
201+
And special kudos to Jerry Devis for one of the best bug reports (GitHub issue #839) that I've seen since I began working on ESAPI in 2009. I hope your bug report can be an example to all. Excellent work.
202+
203+
Lastly, our usual special thanks to the ESAPI community from the ESAPI project co-leaders:
204+
Kevin W. Wall (kwwall) <== The irresponsible party for these release notes!
205+
Matt Seil (xeno6696)

0 commit comments

Comments
 (0)