[
https://issues.apache.org/jira/browse/TINKERPOP-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17318204#comment-17318204
]
Aaron Coady commented on TINKERPOP-2535:
----------------------------------------
Updated Twistlock security scans have flagged two more issues with io.netty.
This one is identified as being fixed in 4.1.61:
[https://nvd.nist.gov/vuln/detail/CVE-2021-21409
]
Netty is an open-source, asynchronous event-driven network application
framework for rapid development of maintainable high performance protocol
servers & clients. In Netty (io.netty:netty-codec-http2) before version
4.1.61.Final there is a vulnerability that enables request smuggling. The
content-length header is not correctly validated if the request only uses a
single Http2HeaderFrame with the endStream set to to true. This could lead to
request smuggling if the request is proxied to a remote peer and translated to
HTTP/1.1. This is a followup of GHSA-wm47-8v5p-wjpj/CVE-2021-21295 which did
miss to fix this one case. This was fixed as part of 4.1.61.Final.
This one is identified as being fixed in 4.1.60:
[https://nvd.nist.gov/vuln/detail/CVE-2021-21295]
Netty is an open-source, asynchronous event-driven network application
framework for rapid development of maintainable high performance protocol
servers & clients. In Netty (io.netty:netty-codec-http2) before version
4.1.60.Final there is a vulnerability that enables request smuggling. If a
Content-Length header is present in the original HTTP/2 request, the field is
not validated by `Http2MultiplexHandler` as it is propagated up. This is fine
as long as the request is not proxied through as HTTP/1.1. If the request comes
in as an HTTP/2 stream, gets converted into the HTTP/1.1 domain objects
(`HttpRequest`, `HttpContent`, etc.) via `Http2StreamFrameToHttpObjectCodec
`and then sent up to the child channel's pipeline and proxied through a remote
peer as HTTP/1.1 this may result in request smuggling. In a proxy case, users
may assume the content-length is validated somehow, which is not the case. If
the request is forwarded to a backend channel that is a HTTP/1.1 connection,
the Content-Length now has meaning and needs to be checked. An attacker can
smuggle requests inside the body as it gets downgraded from HTTP/2 to HTTP/1.1.
For an example attack refer to the linked GitHub Advisory. Users are only
affected if all of this is true: `HTTP2MultiplexCodec` or `Http2FrameCodec` is
used, `Http2StreamFrameToHttpObjectCodec` is used to convert to HTTP/1.1
objects, and these HTTP/1.1 objects are forwarded to another remote peer. This
has been patched in 4.1.60.Final As a workaround, the user can do the
validation by themselves by implementing a custom `ChannelInboundHandler` that
is put in the `ChannelPipeline` behind `Http2StreamFrameToHttpObjectCodec`.
> Netty 4.1.52 flagged as medium security violation
> -------------------------------------------------
>
> Key: TINKERPOP-2535
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2535
> Project: TinkerPop
> Issue Type: Improvement
> Components: server
> Affects Versions: 3.4.10
> Reporter: Dan Snoddy
> Assignee: Stephen Mallette
> Priority: Major
> Fix For: 3.5.0, 3.4.11
>
>
> Security scan software (twistlock) flags netty-all-4.1.52.Final.jar as a
> medium security violation:
> MEDIUM:
> {color:#000000}Attack complexity: low,Has fix,Medium severity,Recent
> vulnerability
> {color}{color:#000000}CVE-2021-21290{color}
> {color:#000000}[+https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-21290+]{color}
> {color:#000000}Netty is an open-source, asynchronous event-driven network
> application framework for rapid development of maintainable high performance
> protocol servers & clients. In Netty before version 4.1.59.Final there is a
> vulnerability on Unix-like systems involving an insecure temp file. When
> netty\'s multipart decoders are used local information disclosure can occur
> via the local system temporary directory if temporary storing uploads on the
> disk is enabled. On unix-like systems, the temporary directory is shared
> between all user. As such, writing to this directory using APIs that do not
> explicitly set the file/directory permissions can lead to information
> disclosure. Of note, this does not impact modern MacOS Operating Systems. The
> method 'File.createTempFile' on unix-like systems creates a random file, but,
> by default will create this file with the permissions '-rw-r--r--'. Thus, if
> sensitive information is written to this file, other local users can read
> this information. This is the case in netty\'s 'AbstractDiskHttpData' is
> vulnerable. This has been fixed in version 4.1.59.Final. As a workaround, one
> may specify your own 'java.io.tmpdir' when you start the JVM or use
> 'DefaultHttpDataFactory.setBaseDir(...)' to set the directory to something
> that is only readable by the current user.{color}
> {color:#000000} {color}
> The scan report shows that the issue is addressed in version 4.1.59. Is there
> a plan to upgrade it?
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)