VYPR
Medium severity5.3NVD Advisory· Published Dec 30, 2011· Updated Apr 29, 2026

CVE-2011-4461

CVE-2011-4461

Description

Jetty 8.1.0.RC2 and earlier computes hash values for form parameters without restricting the ability to trigger hash collisions predictably, which allows remote attackers to cause a denial of service (CPU consumption) by sending many crafted parameters.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
org.eclipse.jetty:jetty-serverMaven
< 8.1.0.RC48.1.0.RC4

Affected products

341
  • Apache/Jetty340 versions
    cpe:2.3:a:mortbay:jetty:1.0:*:*:*:*:*:*:*+ 339 more
    • cpe:2.3:a:mortbay:jetty:1.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:1.0.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:1.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:1.1.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:1.2.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:1.3.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:1.3.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:1.3.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:1.3.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:1.3.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:1.3.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.0.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.0.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.0.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.0.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.0.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.0.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.0:alpha1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.0:alpha2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.0:beta1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.0:beta2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.1.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.1.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.1.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.1.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.1.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.1.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.1.6:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.1.7:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.1.b0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.1.b1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2.6:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2.7:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2.8:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2:alpha0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2:alpha1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2:beta0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2:beta1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2:beta2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2:beta3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.2:beta4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.3.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.3.0a:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.3.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.3.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.3.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.3.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.3.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.4.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.4.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.4.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.4.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.4.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.4.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.4.6:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.4.7:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.4.8:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:2.4.9:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.0:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.0:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.0:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.0:rc4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.0:rc5:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.0:rc6:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.0:rc7:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.0:rc8:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.6:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a6:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a7:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a8:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a9:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a90:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a91:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a92:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a93:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a94:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a95:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a96:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a97:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a98:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.a99:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.b01:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.b02:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.b03:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.b04:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.0.b05:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1.6:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1.7:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1.8:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1.9:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1:rc4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1:rc5:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1:rc6:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1:rc7:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1:rc8:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:3.1:rc9:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.1:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.1:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.1:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.6:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.b0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.b1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.b2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.d0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.d1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.d2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.d3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0.d4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.0:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.0:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.0:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.0:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.0:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.0:rc4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.0:rc5:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.0:rc6:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.b0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.b1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.d0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.d1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.1.d2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.0:beta0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.0:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.0:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.10:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.10:pre0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.10:pre1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.10:pre2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.11:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.12:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.14:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.14:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.14:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.15:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.15:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.16:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.17:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.18:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.19:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.20:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.20:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.21:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.22:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.23:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.23:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.24:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.24:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.24:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.25:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.26:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.27:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.4:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.6:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.7:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.8_01:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.9:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.9:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:4.2.9:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0.0:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:alpha0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:alpha1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:alpha2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:alpha3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:beta0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:beta1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:beta2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.0:rc4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.10:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.11:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.11:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.12:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.13:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.14:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.1:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.1:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.2:pre0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.3:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.3:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.3:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.3:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.3:rc4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.4:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.5:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.5:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.5:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.6:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.7:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.7:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.8:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1.9:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:5.1:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:alpha0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:alpha1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:alpha2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:alpha3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta10:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta11:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta12:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta14:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta15:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta16:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta17:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta5:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta6:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta7:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta8:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:beta9:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:betax:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.0:rc4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.0.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.0:pre0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.0:pre1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.0:pre2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.0:pre3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.0:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.0:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.0:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.0:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.1:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.10:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.11:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.12:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.12:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.12:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.12:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.12:rc4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.12:rc5:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.14:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.15:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.15:pre0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.15:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.15:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.15:rc4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.15:rc5:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.16:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.19:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.1:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.2:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.20:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.21:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.2:pre0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.2:pre1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.2:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.2:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.2:rc2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.2:rc3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.2:rc4:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.2:rc5:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.3:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.4:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.4:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.4:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.5:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.5:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.6:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.6:rc0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.6:rc1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.7:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.8:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:6.1.9:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:7.0.0:*:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:7.0.0:m1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:7.0.0:m2:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:7.0.0:pre0:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:7.0.0:pre1:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:7.0.0:pre3:*:*:*:*:*:*
    • cpe:2.3:a:mortbay:jetty:*:rc2:*:*:*:*:*:*range: <=8.1.0
  • cpe:2.3:a:oracle:sun_storage_common_array_manager:6.9.0:*:*:*:*:*:*:*

Patches

1
085c79d7d6cf

637638 limit number of form parameters to avoid DOS

https://github.com/eclipse/jetty.projectGreg WilkinsDec 30, 2011via ghsa
5 files changed · +144 31
  • jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java+21 0 modified
    @@ -120,6 +120,7 @@ public static Context getCurrentContext()
         private EventListener[] _eventListeners;
         private Logger _logger;
         private boolean _allowNullPathInfo;
    +    private int _maxFormKeys = Integer.getInteger("org.eclipse.jetty.server.Request.maxFormKeys",1000).intValue();
         private int _maxFormContentSize = Integer.getInteger("org.eclipse.jetty.server.Request.maxFormContentSize",200000).intValue();
         private boolean _compactPath = false;
         private boolean _aliases = false;
    @@ -1348,11 +1349,31 @@ public int getMaxFormContentSize()
         }
     
         /* ------------------------------------------------------------ */
    +    /**
    +     * Set the maximum size of a form post, to protect against DOS attacks from large forms.
    +     * @param maxSize
    +     */
         public void setMaxFormContentSize(int maxSize)
         {
             _maxFormContentSize = maxSize;
         }
     
    +    /* ------------------------------------------------------------ */
    +    public int getMaxFormKeys()
    +    {
    +        return _maxFormKeys;
    +    }
    +
    +    /* ------------------------------------------------------------ */
    +    /**
    +     * Set the maximum number of form Keys to protect against DOS attack from crafted hash keys.
    +     * @param max
    +     */
    +    public void setMaxFormKeys(int max)
    +    {
    +        _maxFormKeys = max;
    +    }
    +
         /* ------------------------------------------------------------ */
         /**
          * @return True if URLs are compacted to replace multiple '/'s with a single '/'
    
  • jetty-server/src/main/java/org/eclipse/jetty/server/Request.java+19 6 modified
    @@ -101,6 +101,14 @@
      * to avoid reparsing headers and cookies that are likely to be the same for 
      * requests from the same connection.
      * 
    + * <p>
    + * The form content that a request can process is limited to protect from Denial of Service 
    + * attacks. The size in bytes is limited by {@link ContextHandler#getMaxFormContentSize()} or if there is no 
    + * context then the "org.eclipse.jetty.server.Request.maxFormContentSize" {@link Server} attribute.  
    + * The number of parameters keys is limited by {@link ContextHandler#getMaxFormKeys()} or if there is no
    + * context then the "org.eclipse.jetty.server.Request.maxFormKeys" {@link Server} attribute. 
    + * 
    + * 
      */
     public class Request implements HttpServletRequest
     {
    @@ -231,7 +239,7 @@ public void extractParameters()
                 if (content_type != null && content_type.length() > 0)
                 {
                     content_type = HttpFields.valueParameters(content_type, null);
    -
    +                
                     if (MimeTypes.FORM_ENCODED.equalsIgnoreCase(content_type) && _inputState==__NONE &&
                             (HttpMethods.POST.equals(getMethod()) || HttpMethods.PUT.equals(getMethod())))
                     {
    @@ -241,24 +249,29 @@ public void extractParameters()
                             try
                             {
                                 int maxFormContentSize=-1;
    +                            int maxFormKeys=-1;
     
                                 if (_context!=null)
    +                            {
                                     maxFormContentSize=_context.getContextHandler().getMaxFormContentSize();
    +                                maxFormKeys=_context.getContextHandler().getMaxFormKeys();
    +                            }
                                 else
                                 {
    -                                Integer size = (Integer)_connection.getConnector().getServer().getAttribute("org.eclipse.jetty.server.Request.maxFormContentSize");
    -                                if (size!=null)
    -                                    maxFormContentSize =size.intValue();
    +                                Number size = (Number)_connection.getConnector().getServer().getAttribute("org.eclipse.jetty.server.Request.maxFormContentSize");
    +                                maxFormContentSize=size==null?200000:size.intValue();
    +                                Number keys = (Number)_connection.getConnector().getServer().getAttribute("org.eclipse.jetty.server.Request.maxFormKeys");
    +                                maxFormKeys =keys==null?1000:keys.intValue();
                                 }
    -
    +                            
                                 if (content_length>maxFormContentSize && maxFormContentSize > 0)
                                 {
                                     throw new IllegalStateException("Form too large"+content_length+">"+maxFormContentSize);
                                 }
                                 InputStream in = getInputStream();
     
                                 // Add form params to query params
    -                            UrlEncoded.decodeTo(in, _baseParameters, encoding,content_length<0?maxFormContentSize:-1);
    +                            UrlEncoded.decodeTo(in, _baseParameters, encoding,content_length<0?maxFormContentSize:-1,maxFormKeys);
                             }
                             catch (IOException e)
                             {
    
  • jetty-server/src/test/java/org/eclipse/jetty/server/RequestTest.java+60 2 modified
    @@ -19,12 +19,16 @@
     import static org.junit.Assert.assertSame;
     import static org.junit.Assert.assertTrue;
     
    +import java.io.BufferedReader;
    +import java.io.File;
    +import java.io.FileReader;
     import java.io.IOException;
     import java.io.InputStream;
     import java.io.Reader;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Enumeration;
    +import java.util.HashMap;
     import java.util.Map;
     
     import javax.servlet.ServletException;
    @@ -34,9 +38,11 @@
     
     import junit.framework.Assert;
     
    +import org.eclipse.jetty.http.MimeTypes;
     import org.eclipse.jetty.server.handler.AbstractHandler;
     import org.eclipse.jetty.util.IO;
     import org.eclipse.jetty.util.StringUtil;
    +import org.eclipse.jetty.util.log.Log;
     import org.junit.After;
     import org.junit.Before;
     import org.junit.Test;
    @@ -740,6 +746,56 @@ public boolean check(HttpServletRequest request,HttpServletResponse response)
             assertEquals(null,cookie[1]);
         }
     
    +
    +    @Test
    +    public void testHashDOS() throws Exception
    +    {
    +        _server.setAttribute("org.eclipse.jetty.server.Request.maxFormContentSize",-1);
    +        _server.setAttribute("org.eclipse.jetty.server.Request.maxFormKeys",1000);
    +        
    +        // This file is not distributed - as it is dangerous
    +        File evil_keys = new File("/tmp/keys_mapping_to_zero_2m");
    +        if (!evil_keys.exists())
    +        {
    +            Log.info("testHashDOS skipped");
    +            return;
    +        }
    +        
    +        BufferedReader in = new BufferedReader(new FileReader(evil_keys));
    +        StringBuilder buf = new StringBuilder(4000000);
    +        
    +        String key=null;
    +        buf.append("a=b");
    +        while((key=in.readLine())!=null)
    +        {
    +            buf.append("&").append(key).append("=").append("x");
    +        }
    +        buf.append("&c=d");
    +        
    +        _handler._checker = new RequestTester()
    +        {
    +            public boolean check(HttpServletRequest request,HttpServletResponse response)
    +            {
    +                return "b".equals(request.getParameter("a")) && request.getParameter("c")==null;
    +            }
    +        };
    +
    +        String request="POST / HTTP/1.1\r\n"+
    +        "Host: whatever\r\n"+
    +        "Content-Type: "+MimeTypes.FORM_ENCODED+"\r\n"+
    +        "Content-Length: "+buf.length()+"\r\n"+
    +        "Connection: close\r\n"+
    +        "\r\n"+
    +        buf;
    +        
    +        long start=System.currentTimeMillis();
    +        String response = _connector.getResponses(request);
    +        assertTrue(response.contains("200 OK"));
    +        long now=System.currentTimeMillis();
    +        assertTrue((now-start)<5000);
    +    }
    +    
    +    
         interface RequestTester
         {
             boolean check(HttpServletRequest request,HttpServletResponse response) throws IOException;
    @@ -754,13 +810,15 @@ public void handle(String target, Request baseRequest, HttpServletRequest reques
             {
                 ((Request)request).setHandled(true);
     
    -            if (request.getContentLength()>0)
    +            if (request.getContentLength()>0 && !MimeTypes.FORM_ENCODED.equals(request.getContentType()))
                     _content=IO.toString(request.getInputStream());
    -
    +            
                 if (_checker!=null && _checker.check(request,response))
                     response.setStatus(200);
                 else
                     response.sendError(500);
    +            
    +
             }
         }
     }
    
  • jetty-util/src/main/java/org/eclipse/jetty/util/UrlEncoded.java+42 21 modified
    @@ -16,6 +16,7 @@
     import java.io.IOException;
     import java.io.InputStream;
     import java.io.InputStreamReader;
    +import java.io.StringWriter;
     import java.io.UnsupportedEncodingException;
     import java.util.Iterator;
     import java.util.Map;
    @@ -78,13 +79,13 @@ public UrlEncoded(String s, String charset)
         /* ----------------------------------------------------------------- */
         public void decode(String query)
         {
    -        decodeTo(query,this,ENCODING);
    +        decodeTo(query,this,ENCODING,-1);
         }
         
         /* ----------------------------------------------------------------- */
         public void decode(String query,String charset)
         {
    -        decodeTo(query,this,charset);
    +        decodeTo(query,this,charset,-1);
         }
         
         /* -------------------------------------------------------------- */
    @@ -177,6 +178,15 @@ else if (equalsForNullValue)
          * @param content the string containing the encoded parameters
          */
         public static void decodeTo(String content, MultiMap map, String charset)
    +    {
    +        decodeTo(content,map,charset,-1);
    +    }
    +    
    +    /* -------------------------------------------------------------- */
    +    /** Decoded parameters to Map.
    +     * @param content the string containing the encoded parameters
    +     */
    +    public static void decodeTo(String content, MultiMap map, String charset, int maxKeys)
         {
             if (charset==null)
                 charset=ENCODING;
    @@ -208,6 +218,11 @@ else if (value!=null&&value.length()>0)
                           }
                           key = null;
                           value=null;
    +                      if (maxKeys>0 && map.size()>maxKeys)
    +                      {
    +                          LOG.warn("maxFormKeys limit exceeded keys>{}",maxKeys);
    +                          return;
    +                      }
                           break;
                       case '=':
                           if (key!=null)
    @@ -343,9 +358,10 @@ else if (buffer.length()>0)
         /** Decoded parameters to Map.
          * @param in InputSteam to read
          * @param map MultiMap to add parameters to
    -     * @param maxLength maximum length of content to read 0r -1 for no limit
    +     * @param maxLength maximum length of content to read or -1 for no limit
    +     * @param maxLength maximum number of keys to read or -1 for no limit
          */
    -    public static void decode88591To(InputStream in, MultiMap map, int maxLength)
    +    public static void decode88591To(InputStream in, MultiMap map, int maxLength, int maxKeys)
         throws IOException
         {
             synchronized(map)
    @@ -375,6 +391,11 @@ else if (value!=null&&value.length()>0)
                             }
                             key = null;
                             value=null;
    +                        if (maxKeys>0 && map.size()>maxKeys)
    +                        {
    +                            LOG.warn("maxFormKeys limit exceeded keys>{}",maxKeys);
    +                            return;
    +                        }
                             break;
                             
                         case '=':
    @@ -423,9 +444,10 @@ else if (buffer.length()>0)
         /** Decoded parameters to Map.
          * @param in InputSteam to read
          * @param map MultiMap to add parameters to
    -     * @param maxLength maximum length of content to read 0r -1 for no limit
    +     * @param maxLength maximum length of content to read or -1 for no limit
    +     * @param maxLength maximum number of keys to read or -1 for no limit
          */
    -    public static void decodeUtf8To(InputStream in, MultiMap map, int maxLength)
    +    public static void decodeUtf8To(InputStream in, MultiMap map, int maxLength, int maxKeys)
         throws IOException
         {
             synchronized(map)
    @@ -455,6 +477,11 @@ else if (value!=null&&value.length()>0)
                             }
                             key = null;
                             value=null;
    +                        if (maxKeys>0 && map.size()>maxKeys)
    +                        {
    +                            LOG.warn("maxFormKeys limit exceeded keys>{}",maxKeys);
    +                            return;
    +                        }
                             break;
                             
                         case '=':
    @@ -500,25 +527,20 @@ else if (buffer.length()>0)
         }
         
         /* -------------------------------------------------------------- */
    -    public static void decodeUtf16To(InputStream in, MultiMap map, int maxLength) throws IOException
    +    public static void decodeUtf16To(InputStream in, MultiMap map, int maxLength, int maxKeys) throws IOException
         {
             InputStreamReader input = new InputStreamReader(in,StringUtil.__UTF16);
    -        StringBuffer buf = new StringBuffer();
    -
    -        int c;
    -        int length=0;
    -        if (maxLength<0)
    -            maxLength=Integer.MAX_VALUE;
    -        while ((c=input.read())>0 && length++<maxLength)
    -            buf.append((char)c);
    -        decodeTo(buf.toString(),map,ENCODING);
    +        StringWriter buf = new StringWriter(8192);
    +        IO.copy(input,buf,maxLength);
    +        
    +        decodeTo(buf.getBuffer().toString(),map,ENCODING,maxKeys);
         }
         
         /* -------------------------------------------------------------- */
         /** Decoded parameters to Map.
          * @param in the stream containing the encoded parameters
          */
    -    public static void decodeTo(InputStream in, MultiMap map, String charset, int maxLength)
    +    public static void decodeTo(InputStream in, MultiMap map, String charset, int maxLength, int maxKeys)
         throws IOException
         {
             //no charset present, use the configured default
    @@ -527,22 +549,21 @@ public static void decodeTo(InputStream in, MultiMap map, String charset, int ma
                charset=ENCODING;
             }
                 
    -            
             if (StringUtil.__UTF8.equalsIgnoreCase(charset))
             {
    -            decodeUtf8To(in,map,maxLength);
    +            decodeUtf8To(in,map,maxLength,maxKeys);
                 return;
             }
             
             if (StringUtil.__ISO_8859_1.equals(charset))
             {
    -            decode88591To(in,map,maxLength);
    +            decode88591To(in,map,maxLength,maxKeys);
                 return;
             }
     
             if (StringUtil.__UTF16.equalsIgnoreCase(charset)) // Should be all 2 byte encodings
             {
    -            decodeUtf16To(in,map,maxLength);
    +            decodeUtf16To(in,map,maxLength,maxKeys);
                 return;
             }
             
    
  • jetty-util/src/test/java/org/eclipse/jetty/util/URLEncodedTest.java+2 2 modified
    @@ -178,7 +178,7 @@ public void testUrlEncodedStream()
             {
                 ByteArrayInputStream in = new ByteArrayInputStream("name\n=value+%30&name1=&name2&n\u00e3me3=value+3".getBytes(charsets[i][0]));
                 MultiMap m = new MultiMap();
    -            UrlEncoded.decodeTo(in, m, charsets[i][1], -1);
    +            UrlEncoded.decodeTo(in, m, charsets[i][1], -1,-1);
                 System.err.println(m);
                 assertEquals(i+" stream length",4,m.size());
                 assertEquals(i+" stream name\\n","value 0",m.getString("name\n"));
    @@ -192,7 +192,7 @@ public void testUrlEncodedStream()
             {
                 ByteArrayInputStream in2 = new ByteArrayInputStream ("name=%83e%83X%83g".getBytes());
                 MultiMap m2 = new MultiMap();
    -            UrlEncoded.decodeTo(in2, m2, "Shift_JIS", -1);
    +            UrlEncoded.decodeTo(in2, m2, "Shift_JIS", -1,-1);
                 assertEquals("stream length",1,m2.size());
                 assertEquals("stream name","\u30c6\u30b9\u30c8",m2.getString("name"));
             }
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

18

News mentions

0

No linked articles in our index yet.