diff --git a/CHANGELOG.md b/CHANGELOG.md index 23b1d23..3ac5974 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,13 +8,18 @@ unchanged. [1.5.0 is available from Central](releases/1.5.0-central-publication. ## Unreleased +## 1.5.1 — release preparation, 2026-10-15 UTC + +Documentation and build-maintenance patch; publication is tracked in the +[release record](releases/1.5.1.md). Encoding behavior and public APIs are unchanged. + - Clarify JavaScript encoding modes, output growth, and insertion-boundary requirements for #243; distinguish JSON whole-string HTML embedding from JavaScript fragment protection. Correct internal HTML/XML comments and strengthen parser tests to verify script text, not only absence of a marker. Encoding behavior is unchanged. -- Resume development at `1.5.1-SNAPSHOT`, with the immutable 1.5.0 public-API - baseline and its matching support APIs. Minimum-consumer fixtures are unchanged. +- Verify public API compatibility against immutable 1.5.0 artifacts and their + matching support APIs. Minimum-consumer fixtures are unchanged. - Discover release tags independently of commit ancestry so squash merges cannot leave the compatibility baseline stale; add isolated Git regressions. - Record verified 1.5.0 publication and replace pending-availability notices. @@ -30,6 +35,12 @@ unchanged. [1.5.0 is available from Central](releases/1.5.0-central-publication. module POMs are byte-identical to 3.9.16 builds ([validation](releases/maven-3.10.0-validation.md)). +- Update isolated Tomcat/Jasper test engines to 9.0.123 and 10.1.61 and give + each its own Dependabot scan (#241, #242). These are test tooling, not + dependencies shipped inside the encoder libraries. +- Update reviewed build tooling and pinned Actions, including japicmp 0.26.3, + Commons Lang 3.21.0, and the publisher's HttpClient 5.6.5 (#234, #237, #240). + ## 1.5.0 — 2026-09-28 UTC This is a security release for diff --git a/README.md b/README.md index 8ece5e0..49062e7 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,16 @@ has no runtime dependencies; optional JSP and Jakarta adapters provide view-laye bindings. Encoding is one part of [XSS prevention][xss], alongside safe templates, URL validation and other application controls. -**Released 2026-09-28:** version 1.5.0 fixes parser-boundary vulnerabilities in -JavaScript-in-HTML, CDATA, and XML-comment fragment composition. Versions through -1.4.1 do not contain those fixes. The [signed GitHub release][release] and -[Maven Central artifacts](releases/1.5.0-central-publication.md) have been -independently verified. See the [1.5.0 release notes](releases/1.5.0.md), -[security advisory](https://github.com/OWASP/owasp-java-encoder/security/advisories/GHSA-g8p6-7r8f-qrpv) +**1.5.1 release preparation:** this patch release clarifies the JavaScript and +JSON documentation and strengthens parser regression tests. Encoder behavior, +public APIs, and runtime dependencies are unchanged from 1.5.0. Publication is +not complete; the dependency example below targets the prepared release. See +[the 1.5.1 release record](releases/1.5.1.md) for availability and verification. + +The latest verified Central release remains [1.5.0](releases/1.5.0-central-publication.md) +until 1.5.1 publication is confirmed. It introduced the parser-boundary security +fixes retained in 1.5.1; versions through 1.4.1 do not contain those fixes. See +[the security advisory](https://github.com/OWASP/owasp-java-encoder/security/advisories/GHSA-g8p6-7r8f-qrpv) and [VERIFYING.md](VERIFYING.md). ## Start using the OWASP Java Encoders @@ -32,7 +36,7 @@ The three supported artifacts use group ID `org.owasp.encoder`: org.owasp.encoder encoder - 1.5.0 + 1.5.1 ``` @@ -45,7 +49,7 @@ on the same classpath or module path. See the [runtime matrix](compatibility/REA `encoder-esapi` was retired after 1.4.1 and is not included or supported in 1.5.0. Applications using it must [migrate away from the adapter](docs/encoder-esapi-retirement.md). -Published 1.5.0 API documentation: [core](https://javadoc.io/doc/org.owasp.encoder/encoder/1.5.0/), +Published 1.5.0 API documentation (1.5.1 indexing follows publication): [core](https://javadoc.io/doc/org.owasp.encoder/encoder/1.5.0/), [javax JSP](https://javadoc.io/doc/org.owasp.encoder/encoder-jsp/1.5.0/) and [Jakarta JSP](https://javadoc.io/doc/org.owasp.encoder/encoder-jakarta-jsp/1.5.0/). @@ -172,4 +176,4 @@ links distinguish maintainer support from OWASP Foundation donations. [xss]: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html [java-libraries]: https://devguide.owasp.org/en/05-implementation/03-secure-libraries/04-java-secure-libs/ [project]: https://owasp.org/projects/java-encoder -[release]: https://github.com/OWASP/owasp-java-encoder/releases/tag/v1.5.0 +[release]: https://github.com/OWASP/owasp-java-encoder/releases/tag/v1.5.1 diff --git a/SECURITY.md b/SECURITY.md index 83996ed..2fb50c3 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,6 +2,11 @@ ## Supported Versions +Version **1.5.1** is being prepared as a documentation and build-maintenance +patch. It preserves the 1.5.0 security fixes and introduces no new encoder +security fix. Until [publication is verified](releases/1.5.1.md), 1.5.0 remains +the current supported release shown below. + Version **1.5.0**, published **2026-09-28 UTC**, is the current security release. The [signed GitHub assets](https://github.com/OWASP/owasp-java-encoder/releases/tag/v1.5.0) and [Maven Central publication](releases/1.5.0-central-publication.md) have been diff --git a/VERIFYING.md b/VERIFYING.md index 4594d53..67d7277 100644 --- a/VERIFYING.md +++ b/VERIFYING.md @@ -6,14 +6,15 @@ identity authority. Obtain [KEYS](KEYS) from a trusted project revision and chec the fingerprint before use. Never import private key material to verify a release. For 1.4.1 and later releases until a documented rotation, the expected project key -is `1C5F632B86809F2F5DB25092BEA0075F94074A9B`. The [1.5.0 release record](releases/1.5.0.md#verification-and-evidence) -covers its signed GitHub assets. The [Central publication verification](releases/1.5.0-central-publication.md) -confirms that Central serves the same artifacts and signatures. +is `1C5F632B86809F2F5DB25092BEA0075F94074A9B`. The [1.5.1 release record](releases/1.5.1.md#verification-and-evidence) +tracks signing and publication of the prepared patch release. Do not treat a +prepared release as available. The [1.5.0 publication verification](releases/1.5.0-central-publication.md) +continues to record the previous verified artifacts and signatures. ## Fresh public-only keyring Download the artifact, its original `.asc`, and the trusted `KEYS`. This example -verifies the published 1.5.0 release. For historical releases, use the full +targets 1.5.1 once its publication is verified. For historical releases, use the full fingerprint mapped below and review the historical key's expiry and algorithms. Commands use GnuPG and `shasum` (or equivalent SHA tools). @@ -22,7 +23,7 @@ verify_home=$(mktemp -d) chmod 700 "$verify_home" gpg --homedir "$verify_home" --batch --no-autostart --import KEYS expected_fingerprint=1C5F632B86809F2F5DB25092BEA0075F94074A9B -artifact=encoder-1.5.0.jar +artifact=encoder-1.5.1.jar gpg --homedir "$verify_home" --no-autostart --fingerprint "$expected_fingerprint" gpg --homedir "$verify_home" --batch --no-autostart --status-fd 1 \ --verify "$artifact.asc" "$artifact" > signature.status || exit 1 @@ -45,7 +46,7 @@ A Maven `.sha256` sidecar usually contains **only a hex digest**, not a filename After fetching it over the intended distribution channel, form a check manifest: ```sh -artifact=encoder-1.5.0.jar +artifact=encoder-1.5.1.jar expected_hash=$(tr -d '[:space:]' < "$artifact.sha256") printf '%s\n' "$expected_hash" | grep -Eq '^[[:xdigit:]]{64}$' || exit 1 printf '%s %s\n' "$expected_hash" "$artifact" | shasum -a 256 --check || exit 1 diff --git a/compatibility/README.md b/compatibility/README.md index f8c3679..2d8ddd8 100644 --- a/compatibility/README.md +++ b/compatibility/README.md @@ -84,8 +84,7 @@ fail these guards. During ordinary `./mvnw verify`, Animal Sniffer checks each library against the Java 8 API signature. This catches linkage such as Java 9's covariant `CharBuffer.flip()` even when bytecode still has class version 52. japicmp checks public/protected API -binary and source compatibility against **1.5.0** during **1.5.1-SNAPSHOT** -development. The baseline guard selects the latest preceding semantic release tag, +binary and source compatibility against **1.5.0** for the **1.5.1** release. The baseline guard selects the latest preceding semantic release tag, including signed source commits integrated by squash merge; fetch all release tags before running it. The old support classpath matches the 1.5.0 POMs (JSP 2.3.3, Jakarta Servlet 6.1.0 and EL 6.0.1). Independent minimum-consumer fixtures remain diff --git a/core/pom.xml b/core/pom.xml index 9c24dbe..23ee89f 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -42,7 +42,7 @@ org.owasp.encoder encoder-parent - 1.5.1-SNAPSHOT + 1.5.1 encoder diff --git a/docs/contexts.md b/docs/contexts.md index 4ac4e51..cfc4e9e 100644 --- a/docs/contexts.md +++ b/docs/contexts.md @@ -1,7 +1,8 @@ # Output contexts and boundaries -This guide describes the published version **1.5.0**; feature introductions are -marked below. See the [verified downloads](../releases/1.5.0-central-publication.md). +This guide describes **1.5.1**, which clarifies the unchanged 1.5.0 encoding +behavior; feature introductions are marked below. See the +[release record](../releases/1.5.1.md) for publication status. The [Encode Javadoc source](../core/src/main/java/org/owasp/encoder/Encode.java) is the detailed per-method contract; each method has a String-returning and a `(Writer out, String input)` overload. `Encoders` exposes shared stateless encoders; diff --git a/docs/usage.md b/docs/usage.md index b818682..e073b73 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1,7 +1,7 @@ # Java and JSP examples -These examples target the published version **1.5.0**. See the -[verified downloads](../releases/1.5.0-central-publication.md). +These examples target **1.5.1**, with unchanged encoding behavior from 1.5.0. +See the [release record](../releases/1.5.1.md) for publication status. Features marked **1.5** are new in this release. ## HTML and Writer output @@ -140,7 +140,7 @@ and the [packaged JSP engine checks](../compatibility/jsp-engine/README.md). ## Java modules The explicit module name for core is `owasp.encoder`. After verifying and obtaining -`encoder-1.5.0.jar`, put that unchanged JAR in `lib/`, then create: +`encoder-1.5.1.jar`, put that unchanged JAR in `lib/`, then create: `src/example.app/module-info.java`: diff --git a/jakarta-test/pom.xml b/jakarta-test/pom.xml index 905ec3e..5c74cb9 100644 --- a/jakarta-test/pom.xml +++ b/jakarta-test/pom.xml @@ -31,7 +31,7 @@ 3.1.7 - 1.5.1-SNAPSHOT + 1.5.1 diff --git a/jakarta/pom.xml b/jakarta/pom.xml index 8e90dcd..9b6e436 100644 --- a/jakarta/pom.xml +++ b/jakarta/pom.xml @@ -42,7 +42,7 @@ org.owasp.encoder encoder-parent - 1.5.1-SNAPSHOT + 1.5.1 encoder-jakarta-jsp diff --git a/jsp/pom.xml b/jsp/pom.xml index 16c17a8..2a9ab40 100644 --- a/jsp/pom.xml +++ b/jsp/pom.xml @@ -42,7 +42,7 @@ org.owasp.encoder encoder-parent - 1.5.1-SNAPSHOT + 1.5.1 encoder-jsp diff --git a/pom.xml b/pom.xml index f0d6ad5..f00396d 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ org.owasp.encoder encoder-parent - 1.5.1-SNAPSHOT + 1.5.1 pom OWASP Java Encoder Project @@ -78,7 +78,7 @@ scm:git:git@github.com:OWASP/owasp-java-encoder.git scm:git:https://github.com/OWASP/owasp-java-encoder.git https://github.com/OWASP/owasp-java-encoder - HEAD + v1.5.1 @@ -114,8 +114,8 @@ - - 2026-09-28T13:21:37Z + + 2026-10-15T16:37:02Z UTF-8 UTF-8