RFR: 8182621: JSSE should reject empty TLS plaintexts [v2]
Matthew Donovan
duke at openjdk.org
Fri Apr 7 13:56:44 UTC 2023
On Fri, 7 Apr 2023 02:14:59 GMT, Xue-Lei Andrew Fan <xuelei at openjdk.org> wrote:
>> Matthew Donovan has updated the pull request incrementally with two additional commits since the last revision:
>>
>> - added comment referring to relevant RFC
>> - clarified if-statements; fixed exception message wording
>
> src/java.base/share/classes/sun/security/ssl/SSLEngineInputRecord.java line 266:
>
>> 264: //
>> 265: if (contentType == ContentType.HANDSHAKE.id) {
>> 266: if (!fragment.hasRemaining()) {
>
> It may be easier to read if using "contentLen != 0", instead of "fragment.hasRemaining()". I may add a comment like what is says in RFC 8446, "Implementations MUST NOT send zero-length fragments of Handshake types, even if those fragments contain padding."
I updated the if-logic and added the comment
> src/java.base/share/classes/sun/security/ssl/SSLEngineInputRecord.java line 267:
>
>> 265: if (contentType == ContentType.HANDSHAKE.id) {
>> 266: if (!fragment.hasRemaining()) {
>> 267: throw new SSLProtocolException("Handshake packets may not be zero-length");
>
> "may not" -> "must not"
Fixed
> src/java.base/share/classes/sun/security/ssl/SSLSocketInputRecord.java line 287:
>
>> 285: if (contentType == ContentType.HANDSHAKE.id) {
>> 286: ByteBuffer handshakeFrag = fragment;
>> 287: if (!handshakeFrag.hasRemaining()) {
>
> Same comment as src/java.base/share/classes/sun/security/ssl/SSLEngineInputRecord.java
Also fixed.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13306#discussion_r1160716144
PR Review Comment: https://git.openjdk.org/jdk/pull/13306#discussion_r1160716277
PR Review Comment: https://git.openjdk.org/jdk/pull/13306#discussion_r1160716381
More information about the security-dev
mailing list