gfredericks / test.chuck

A utility library for test.check
Eclipse Public License 1.0
214 stars 26 forks source link

Update ANT to fix CVE-2017-7657? #77

Open chris-emerson opened 9 months ago

chris-emerson commented 9 months ago

Hi,

Firstly, thank you for your work on the library. We're currently using test.chuck 0.2.13 and it looks like one of the child dependencies of antq is pulling in an old version of jetty which contains a critical vulnerability. I was wondering if it would be possible to update antq to a more recent version to remove this vulnerability?

Vulnerability details:

In Eclipse Jetty, versions 9.2.x and older, 9.3.x (all configurations), and 9.4.x (non-default configuration with RFC2616 compliance enabled), transfer-encoding chunks are handled poorly. The chunk length parsing was vulnerable to an integer overflow. Thus a large chunk size could be interpreted as a smaller chunk size and content sent as chunk body could be interpreted as a pipelined request. If Jetty was deployed behind an intermediary that imposed some authorization and that intermediary allowed arbitrarily large chunks to be passed on unchanged, then this flaw could be used to bypass the authorization imposed by the intermediary as the fake pipelined request would not be interpreted by the intermediary as a request.

Ref: https://nvd.nist.gov/vuln/detail/CVE-2017-7657

;; lein deps :tree

[com.gfredericks/test.chuck "0.2.13"]
   [com.andrewmcveigh/cljs-time "0.5.2"]
   [instaparse "1.4.10"]
 [com.github.liquidz/antq "1.4.0"]
   [org.clojure/data.xml "0.2.0-alpha6"]
     [org.clojure/data.codec "0.1.0"]
   [org.clojure/data.zip "1.0.0"]
   [org.clojure/tools.cli "1.0.206"]
   [org.clojure/tools.deps.alpha "0.12.1090"]
     [com.cognitect.aws/api "0.8.536"]
       [com.cognitect/http-client "1.0.110"]
         [org.eclipse.jetty/jetty-client "9.4.44.v20210927"]

Any help would be much appreciated.

Many Thanks,

Chris

gfredericks commented 9 months ago

I'm confused; I don't see antq in the project.clj, and when I run lein deps I don't see it at all:

$ LEIN_NO_USER_PROFILES=1 lein deps :tree                                                                             
 [clj-time "0.15.2"]
   [joda-time "2.10"]
 [clojure-complete "0.2.5" :exclusions [[org.clojure/clojure]]]
 [com.andrewmcveigh/cljs-time "0.5.2"]
 [instaparse "1.4.10"]
 [nrepl "0.6.0" :exclusions [[org.clojure/clojure]]]
 [org.clojure/clojure "1.10.3" :scope "provided"]
   [org.clojure/core.specs.alpha "0.2.56" :scope "provided"]
   [org.clojure/spec.alpha "0.2.194" :scope "provided"]
 [org.clojure/clojurescript "1.10.879" :scope "provided"]
   [com.cognitect/transit-clj "0.8.309" :scope "provided" :exclusions [[org.clojure/clojure]]]
     [com.cognitect/transit-java "0.8.332" :scope "provided"]
       [com.fasterxml.jackson.core/jackson-core "2.8.7" :scope "provided"]
       [commons-codec "1.10" :scope "provided"]
       [org.msgpack/msgpack "0.6.12" :scope "provided"]
         [com.googlecode.json-simple/json-simple "1.1.1" :scope "provided" :exclusions [[junit]]]
         [org.javassist/javassist "3.18.1-GA" :scope "provided"]
   [com.google.javascript/closure-compiler-unshaded "v20210505" :scope "provided"]
   [org.clojure/data.json "0.2.6" :scope "provided"]
   [org.clojure/google-closure-library "0.0-20201211-3e6c510d" :scope "provided"]
     [org.clojure/google-closure-library-third-party "0.0-20201211-3e6c510d" :scope "provided"]
   [org.clojure/tools.reader "1.3.3" :scope "provided"]
 [org.clojure/test.check "1.1.0"]

Are you sure you're not getting it from your user profile or something like that?