Vulnerabilities |
87 via 317 paths |
|---|---|
Dependencies |
107 |
Source |
GitHub |
Find, fix and prevent vulnerabilities in your code.
critical severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Improper Certificate Validation in the isEmailConstrained() and isURIConstrained() methods of PKIXNameConstraintValidator, which compare rfc822Name and URI subjectAltName values with a bare equalsIgnoreCase() and do not strip a trailing dot the way the dNSName path does. An attacker who controls a name-constrained intermediate CA can issue certificates for email and URI hosts that an excludedSubtrees constraint was meant to block, for example ceo@bank.com. against an exclusion of bank.com, by appending a trailing dot so the value no longer matches the constraint. This affects only the email and URI constraint paths and not dNSName, and it requires a relying party to validate certificate paths through this validator with name constraints in force.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
critical severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Improper Certificate Validation in the check() method of ProvOcspRevocationChecker, which verifies a stapled OCSP response's signature and then treats the certificate as unrevoked when no SingleResponse entry matches its CertID, without requiring a binding match. An attacker can present a revoked certificate that BC-based clients accept as valid by stapling any legitimately signed OCSP response from the same CA, such as a good response for a different serial number. This applies when the client uses BC revocation checking with the response supplied through the stapled PKIXRevocationChecker.setOcspResponses() path rather than fetched over the network, and the response must be validly signed by the same issuer.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
critical severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Improper Input Validation in the calculateAgreement(pub, message) method of the DHAgreement class, which raises the peer-supplied message to the power of the local static private key x without any range or subgroup-membership check, while only the pub parameter is validated through DHPublicKeyParameters. A malicious peer can recover the full static private key by repeatedly sending small-order elements (0, 1, p-1, or elements of small subgroups) as message, since each exchange leaks the key modulo a small prime and the values combine via the Chinese Remainder Theorem. This affects only the MTI/A0 two-pass DHAgreement variant and not DHBasicAgreement, and it requires the application to reuse a static Diffie-Hellman private key across exchanges.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
critical severity
- Vulnerable module: org.eclipse.jetty:jetty-http
- Introduced through: org.eclipse.jetty:jetty-webapp@9.4.57.v20241219
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.eclipse.jetty:jetty-webapp@9.4.57.v20241219 › org.eclipse.jetty:jetty-servlet@9.4.57.v20241219 › org.eclipse.jetty:jetty-security@9.4.57.v20241219 › org.eclipse.jetty:jetty-server@9.4.57.v20241219 › org.eclipse.jetty:jetty-http@9.4.57.v20241219
Overview
org.eclipse.jetty:jetty-http is an is a http module for jetty server.
Affected versions of this package are vulnerable to HTTP Request Smuggling in the HTTP/1.1 parser (HttpParser.java). An attacker can inject additional HTTP requests with chunked transfer encoding with improperly terminated quoted strings.
Remediation
Upgrade org.eclipse.jetty:jetty-http to version 12.0.33, 12.1.7 or higher.
References
critical severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Arbitrary Code Injection via the XsltView file when an application has a /** mapping that results in view rendering and the view name is not explicitly specified. An attacker can execute arbitrary code or make unauthorized network requests by supplying crafted input to manipulate the view resolution process.
Note: This is only exploitable if the application is configured with a /** mapping that triggers view rendering without explicitly specifying the view name.
Remediation
Upgrade org.springframework:spring-webmvc to version 7.0.9 or higher.
References
high severity
- Vulnerable module: commons-lang:commons-lang
- Introduced through: org.constretto:constretto-spring@2.2.3 and com.netflix.hystrix:hystrix-core@1.5.18
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.constretto:constretto-api@2.2.3 › commons-lang:commons-lang@2.6
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › com.netflix.hystrix:hystrix-core@1.5.18 › com.netflix.archaius:archaius-core@0.4.1 › commons-configuration:commons-configuration@1.8 › commons-lang:commons-lang@2.6
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.constretto:constretto-core@2.2.3 › org.constretto:constretto-api@2.2.3 › commons-lang:commons-lang@2.6
Overview
Affected versions of this package are vulnerable to Uncontrolled Recursion via the ClassUtils.getClass function. An attacker can cause the application to terminate unexpectedly by providing excessively long input values.
Remediation
There is no fixed version for commons-lang:commons-lang.
References
high severity
- Vulnerable module: org.eclipse.jetty:jetty-http
- Introduced through: org.eclipse.jetty:jetty-webapp@9.4.57.v20241219
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.eclipse.jetty:jetty-webapp@9.4.57.v20241219 › org.eclipse.jetty:jetty-servlet@9.4.57.v20241219 › org.eclipse.jetty:jetty-security@9.4.57.v20241219 › org.eclipse.jetty:jetty-server@9.4.57.v20241219 › org.eclipse.jetty:jetty-http@9.4.57.v20241219
Overview
org.eclipse.jetty:jetty-http is an is a http module for jetty server.
Affected versions of this package are vulnerable to HTTP Request Smuggling in the chunked request parsing of HttpParser, which accepts a lone LF, rather than CRLF, as the line terminator for chunk extensions, chunk data, and trailers. An attacker can make Jetty and an intermediary proxy interpret different request boundaries, smuggling a request past the proxy, by sending an HTTP/1.1 chunked request whose chunk or trailer terminators use a bare LF. This requires a front-end proxy that parses the chunk framing differently from Jetty, and the exact LF handling depends on the configured HTTP compliance mode.
Remediation
Upgrade org.eclipse.jetty:jetty-http to version 12.0.38, 12.1.12 or higher.
References
high severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Improper Validation of Integrity Check Value that leads to information exposure in the processPacket() method of CCMBlockCipher, with equivalent paths in KCCMBlockCipher and KGCMBlockCipher, which decrypt directly into the caller's output buffer and leave the unverified plaintext there when the authentication tag check fails. An attacker can recover AES-CTR(key, nonce) XOR ciphertext, effectively reducing CCM to unauthenticated CTR, by submitting forged ciphertexts and reading the output buffer on the failure path. This requires the attacker to submit ciphertexts and observe the caller's output buffer after a failed verification, for example through pooled-buffer reuse, logging, or memory inspection.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
high severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Improper Validation of Integrity Check Value in the processPacket() method of KCCMBlockCipher, which invokes processAAD() only when associated data is present, so with no AAD the G1 block (nonce, length, flag) is never mixed into the MAC and the tag reduces to a CBC-MAC over the ciphertext alone, independent of the nonce. An attacker with encryption-oracle access can assemble a valid ciphertext and tag for any never-queried plaintext and nonce pair by deriving the data and tag keystreams from two nonces. This affects only DSTU 7624 CCM encryption performed without any associated data, and requires chosen-plaintext access to an encryption oracle.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
high severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Improper Validation of Integrity Check Value enabling MAC forgery, in the IESEngine class when initialized through the 4-argument init without a block cipher, where the KDF is seeded only from the ECDH shared secret and split into a message-length K1 keystream and a K2 MAC key, so the MAC key's position depends on the message length. An attacker can forge arbitrary authenticated ciphertexts from a single known plaintext-ciphertext pair, since K1 is an XOR keystream that reveals the prefix-stable KDF output and lets the MAC keys for shorter messages be derived. This affects only stream-mode IESEngine initialized with no block cipher where the ephemeral value V is empty, and requires the attacker to hold one known plaintext-ciphertext pair.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
high severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Improper Verification of Cryptographic Signature in the verifySignature() method of RSADigestSigner, whose legacy NULL-omitted DigestInfo path computes comparison offsets as length - hash.length - 2, so its two comparison loops jointly cover only bytes [0..sig.length-2) and leave the final two hash bytes unverified. An attacker can forge an RSA PKCS#1 signature by producing a message whose digest matches the signed digest in every byte except the last two, reducing the second-preimage work factor by 2^16. The flawed path is reachable by default only for signatures using NULL-less DigestInfo encoding, across BC-lightweight TLS rsa_pkcs1_*, PKIX/CMS, and OpenPGP RSA verification, and only when org.bouncycastle.pkcs1.strict_digestinfo is not set.
Workaround
This vulnerability can be avoided by setting the system property org.bouncycastle.pkcs1.strict_digestinfo, which enforces strict DigestInfo parsing and rejects the NULL-omitted encoding that reaches the flawed path.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
high severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Inefficient Algorithmic Complexity in the IETFUtils.valueToString() method, reached through X500Name.toString(), equals(), and hashCode() via AbstractX500NameStyle, which escapes each special character with vBuf.insert(index, "\\") on the same buffer so a value of N escapable bytes costs roughly N²/2 character moves. An attacker can pin a CPU core for seconds to minutes, and saturate the server with a few parallel submissions, by supplying an X.509 certificate, CSR, CRL, or CMS structure containing a single ~60 KB RDN of commas or plus signs. Exploitation only requires a code path that logs, pretty-prints, compares, or hashes the resulting X500Name, including JCA X509Certificate.getSubjectX500Principal().toString() and BC certificate selectors and caches.
Remediation
Upgrade org.bouncycastle:bcprov-jdk15on to version 1.85 or higher.
References
high severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Memory Allocation with Excessive Size Value in the toByteArray() method of DefiniteLengthInputStream, which allocates new byte[(int)_remaining] up front from the declared ASN.1 definite-length value before reading any content. An attacker can drive the JVM to OutOfMemoryError with a small input by supplying an ASN.1 structure whose definite-length header declares a near-heap-sized length that the content never satisfies. This requires the application to parse attacker-supplied ASN.1 or DER input, such as certificates, CMS structures, or keys, through Bouncy Castle.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
high severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Memory Allocation with Excessive Size Value in HSSPublicKeyParameters.getInstance() and HSSSignature.getInstance(), which read the HSS level count L from an encoded public key without the RFC 8554 depth cap of 8 (enforced only during key generation) and then allocate arrays sized from that attacker-controlled value. An attacker can force an allocation of roughly 17 GB, driving the verifier to OutOfMemoryError, by supplying an HSS public key and signature that declare an oversized level count. This requires the verifier to process attacker-supplied HSS/LMS public keys and signatures, reachable via SubjectPublicKeyInfo, the JCA LMSKeyFactorySpi/LMSSignatureSpi, or CMS (RFC 9708) verification.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
high severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Uncontrolled Recursion in the force() method of LazyEncodedSequence, which parses the deferred SEQUENCE with a fresh ASN1InputStream whose nesting-depth counter is reset rather than inherited from the parent parse, and never calls createSubStream() or decrementDepth(). An attacker can crash the handling thread with a StackOverflowError by supplying a 40-50 KB DER-encoded CRL whose revokedCertificates field nests roughly 10,000 SEQUENCE structures. This requires the application to parse the CRL through X509CRLHolder or the BC CertificateFactory path, where revokedCertificates is held as an unevaluated lazy sequence until forced.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
high severity
- Vulnerable module: org.eclipse.jetty:jetty-security
- Introduced through: org.eclipse.jetty:jetty-webapp@9.4.57.v20241219
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.eclipse.jetty:jetty-webapp@9.4.57.v20241219 › org.eclipse.jetty:jetty-servlet@9.4.57.v20241219 › org.eclipse.jetty:jetty-security@9.4.57.v20241219
Overview
Affected versions of this package are vulnerable to Incorrect Implementation of Authentication Algorithm due to lossy ISO-8859-1 encoding in the digest hash computation. An attacker can log in as a user with a non-Latin-1 password by supplying a collision password that replaces each non-ASCII character with ?, producing the same digest response hash. The vulnerable code feeds the username/password material into getBytes(StandardCharsets.ISO_8859_1) when computing the digest values, so characters above U+00FF are silently substituted before hashing. That lets an attacker authenticate successfully with a different password while the victim’s Digest-authenticated account accepts the forged response.
Remediation
Upgrade org.eclipse.jetty:jetty-security to version 9.4.63, 10.0.31, 11.0.31, 12.0.36, 12.1.10 or higher.
References
high severity
- Vulnerable module: org.postgresql:postgresql
- Introduced through: org.postgresql:postgresql@42.7.8
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.postgresql:postgresql@42.7.8Remediation: Upgrade to org.postgresql:postgresql@42.7.11.
Overview
org.postgresql:postgresql is a Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling during the client-side SCRAM-SHA-256 authentication. An attacker can cause excessive CPU consumption by specifying a very large PBKDF2 iteration count during authentication attempts from a malicious server. This can lead to exhaustion of client CPU resources and disruption of connection pools.
Workaround
The following measures can reduce exposure:
Only connect to trusted PostgreSQL servers whose identity is verified. Connect only to trusted PostgreSQL servers, and verify server identity with TLS using
sslmode=verify-fulland a trusted CA. TLS without certificate and hostname verification is not sufficient as an active network attacker can still impersonate the server.Do not rely on
loginTimeoutas a complete mitigation on unpatched versions. On affected versions,loginTimeoutcan stop the waiting caller while the worker thread continues spending CPU.Avoid SCRAM on untrusted or interceptable connection paths. For those paths, use an authentication method that does not let the server choose a SCRAM PBKDF2 iteration count.
Reduce blast radius operationally. Limit parallel connection attempts, add retry backoff, isolate connection establishment in a separate worker or process when possible, and apply CPU or container limits where appropriate.
On trusted servers you control, keep SCRAM iteration counts at ordinary values. This does not defend against an attacker-controlled server, but it avoids unnecessary client cost when talking to legitimate servers.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.postgresql:postgresql to version 42.7.11 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-core
- Introduced through: org.springframework:spring-core@5.3.39, org.springframework:spring-beans@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-core@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-beans@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-web@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-web@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-web@5.3.38 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-tx@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-tx@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.11.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.11.
Overview
org.springframework:spring-core is a core package within the spring-framework that contains multiple classes and utilities.
Affected versions of this package are vulnerable to Incorrect Authorization via the AnnotationsScanner and AnnotatedMethod class. An attacker can gain unauthorized access to sensitive information by exploiting improper resolution of annotations on methods within type hierarchies that use parameterized supertypes with unbounded generics.
Note:
This is only exploitable if security annotations are used on methods in generic superclasses or generic interfaces and the @EnableMethodSecurity feature is enabled.
Remediation
Upgrade org.springframework:spring-core to version 6.2.11 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-expression
- Introduced through: org.springframework:spring-context@5.3.39, org.springframework:spring-webmvc@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
Affected versions of this package are vulnerable to Inefficient Algorithmic Complexity via evaluation of user-controlled Spring Expression Language (SpEL) expressions. An attacker can cause denial of service by supplying specially crafted SpEL expressions that trigger excessive CPU or memory consumption during expression evaluation, leading to application degradation or unavailability.
Remediation
Upgrade org.springframework:spring-expression to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-expression
- Introduced through: org.springframework:spring-context@5.3.39, org.springframework:spring-webmvc@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
Affected versions of this package are vulnerable to Integer Overflow or Wraparound via integer overflow during Spring Expression Language (SpEL) evaluation. An attacker can cause denial of service by supplying a specially crafted SpEL expression that triggers an integer overflow condition, leading to excessive resource consumption during expression processing and potentially rendering the application unavailable.
Remediation
Upgrade org.springframework:spring-expression to version 6.0.0 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.13.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Path Traversal via the WebMvc.fn and WebFlux.fn frameworks. An attacker can access any file on the file system that is also accessible to the process in which the Spring application is running by crafting malicious HTTP requests.
Note:
This is only exploitable if the web application uses RouterFunctions to serve static resources and resource handling is explicitly configured with a FileSystemResource location.
Workaround
This vulnerability can be mitigated by using the Spring Security HTTP Firewall or running the application on Tomcat or Jetty.
Remediation
Upgrade org.springframework:spring-webmvc to version 6.1.13 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Path Traversal through the functional web frameworks WebMvc.fn or WebFlux.fn. An attacker can craft malicious HTTP requests and obtain any file on the file system that is also accessible.
Note: This is similar to CVE-2024-38816, but with different input.
Remediation
Upgrade org.springframework:spring-webmvc to version 6.1.14 or higher.
References
high severity
new
- Vulnerable module: org.glassfish.jaxb:jaxb-core
- Introduced through: org.glassfish.jaxb:jaxb-runtime@4.0.6
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jaxb:jaxb-runtime@4.0.6 › org.glassfish.jaxb:jaxb-core@4.0.6
Overview
Affected versions of this package are vulnerable to XML External Entity (XXE) Injection in the createParserFactory and createDocumentBuilderFactory methods of the XmlFactory class, which set only XMLConstants.FEATURE_SECURE_PROCESSING on the factory and leave disallow-doctype-decl, external-general-entities, external-parameter-entities, and load-external-dtd at their defaults. An attacker can read local files out of band by submitting XML containing an external entity declaration to an application that unmarshals untrusted documents. Exploitation depends on the JAXP implementation in use, because secure processing alone does not block external entity resolution on every implementation.
Details
XXE Injection is a type of attack against an application that parses XML input. XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. By default, many XML processors allow specification of an external entity, a URI that is dereferenced and evaluated during XML processing. When an XML document is being parsed, the parser can make a request and include the content at the specified URI inside of the XML document.
Attacks can include disclosing local files, which may contain sensitive data such as passwords or private user data, using file: schemes or relative paths in the system identifier.
For example, below is a sample XML document, containing an XML element- username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<username>John</username>
</xml>
An external XML entity - xxe, is defined using a system identifier and present within a DOCTYPE header. These entities can access local or remote content. For example the below code contains an external XML entity that would fetch the content of /etc/passwd and display it to the user rendered by username.
<xml>
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<username>&xxe;</username>
</xml>
Other XXE Injection attacks can access local resources that may not stop returning data, possibly impacting application availability and leading to Denial of Service.
Remediation
A fix was pushed into the master branch but not yet published.
References
high severity
- Vulnerable module: org.springframework:spring-expression
- Introduced through: org.springframework:spring-context@5.3.39, org.springframework:spring-webmvc@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-context@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
Overview
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in the SimpleEvaluationContext file when the SpEL expression compiler is enabled through specific configuration settings. An attacker can cause unbounded class-loading growth and bypass enforced safety checks by submitting specially crafted expressions for evaluation.
Note: This is only exploitable if the application evaluates SpEL expressions using SimpleEvaluationContext and the SpEL expression compiler is active via the spring.expression.compiler.mode property or a SpelParserConfiguration set to IMMEDIATE or MIXED.
Remediation
Upgrade org.springframework:spring-expression to version 7.0.9 or higher.
References
high severity
- Vulnerable module: org.mariadb.jdbc:mariadb-java-client
- Introduced through: org.mariadb.jdbc:mariadb-java-client@3.5.6
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.mariadb.jdbc:mariadb-java-client@3.5.6Remediation: Upgrade to org.mariadb.jdbc:mariadb-java-client@3.5.9.
Overview
Affected versions of this package are vulnerable to Inappropriate Encoding for Output Context in the connection process. An attacker can cause silent data corruption and potentially bypass input sanitization by manipulating the character set mid-session, leading to a mismatch between client and server encoding interpretations.
Remediation
Upgrade org.mariadb.jdbc:mariadb-java-client to version 2.7.14, 3.3.5, 3.4.3, 3.5.9 or higher.
References
high severity
- Vulnerable module: org.mariadb.jdbc:mariadb-java-client
- Introduced through: org.mariadb.jdbc:mariadb-java-client@3.5.6
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.mariadb.jdbc:mariadb-java-client@3.5.6Remediation: Upgrade to org.mariadb.jdbc:mariadb-java-client@3.5.9.
Overview
Affected versions of this package are vulnerable to Insufficiently Protected Credentials via the SendPamAuthPacketFactory process. An attacker can obtain sensitive authentication credentials by intercepting network traffic or acting as a man-in-the-middle server during the authentication process. This is only exploitable if connections are made over plain TCP (sslMode=DISABLE) or a TLS mode that does not properly verify server identity, and the attacker can occupy an on-path position or control the server to present an Authentication Switch Request for the dialog plugin.
Workaround
This vulnerability can be mitigated by connecting over verified TLS (set sslMode=verify-full) or using a local Unix socket, or by restricting permitted authentication plugins via restrictedAuth so dialog cannot be negotiated over an insecure transport.
Remediation
Upgrade org.mariadb.jdbc:mariadb-java-client to version 2.7.14, 3.3.5, 3.4.3, 3.5.9 or higher.
References
high severity
- Vulnerable module: org.mariadb.jdbc:mariadb-java-client
- Introduced through: org.mariadb.jdbc:mariadb-java-client@3.5.6
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.mariadb.jdbc:mariadb-java-client@3.5.6Remediation: Upgrade to org.mariadb.jdbc:mariadb-java-client@3.5.9.
Overview
Affected versions of this package are vulnerable to Insufficiently Protected Credentials in the initial-handshake process. An attacker can intercept and obtain database credentials by performing a man-in-the-middle attack during the authentication exchange when the connection is established with TLS verification enabled but without a pinned server certificate. This is only exploitable if the client is configured with sslMode=verify-full or verify-ca, uses a password, and does not pin the server certificate.
Workaround
This vulnerability can be mitigated by pinning the server certificate (setting serverSslCert to the real CA or server certificate), which will cause the client to reject untrusted certificates before any credentials are transmitted.
Remediation
Upgrade org.mariadb.jdbc:mariadb-java-client to version 2.7.14, 3.3.5, 3.4.3, 3.5.9 or higher.
References
high severity
- Vulnerable module: org.postgresql:postgresql
- Introduced through: org.postgresql:postgresql@42.7.8
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.postgresql:postgresql@42.7.8Remediation: Upgrade to org.postgresql:postgresql@42.7.12.
Overview
org.postgresql:postgresql is a Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database.
Affected versions of this package are vulnerable to Incorrect Implementation of Authentication Algorithm in the ScramAuthenticator class, which fails open by confirming only that the server advertised a -PLUS mechanism while neither rejecting an empty channel binding nor verifying that the negotiated mechanism actually uses channel binding. An attacker intercepting the TLS connection can strip the MitM protection that channelBinding=require is meant to guarantee, downgrading authentication from SCRAM-SHA-256-PLUS to plain SCRAM-SHA-256, by presenting a certificate with a signature algorithm such as Ed25519, Ed448, or a post-quantum scheme that makes the bundled scram-client return an empty binding instead of failing. This affects only connections that explicitly set channelBinding=require, since the default prefer policy documents fallback as expected behavior.
Workaround
This vulnerability can be avoided by configuring the connection with sslmode=verify-full and a restrictive truststore, which provides equivalent MitM protection independent of channel binding.
Remediation
Upgrade org.postgresql:postgresql to version 42.7.12 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-beans
- Introduced through: org.springframework:spring-beans@5.3.39, org.springframework:spring-context@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-beans@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-context@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-beans@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-web@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-context@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-tx@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
Overview
org.springframework:spring-beans is a package that is the basis for Spring Framework's IoC container. The BeanFactory interface provides an advanced configuration mechanism capable of managing any type of object.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via the data binding. An attacker can exhaust system memory by supplying a crafted property path with a large index value, causing unbounded allocation of list elements when the target object contains a self-populating list whose element type exposes sub-properties.
Note: This is only exploitable if the application uses Spring's data binding infrastructure to apply user-supplied property paths onto a target object, the target object contains a self-populating list implementation as a property, and the list's element type exposes sub-properties.
Remediation
Upgrade org.springframework:spring-beans to version 7.0.9 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-beans
- Introduced through: org.springframework:spring-beans@5.3.39, org.springframework:spring-context@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-beans@6.2.10.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.10.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-beans@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-web@6.2.10.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.2.10.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.10.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.10.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.10.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.10.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-tx@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.2.10.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.10.
Overview
org.springframework:spring-beans is a package that is the basis for Spring Framework's IoC container. The BeanFactory interface provides an advanced configuration mechanism capable of managing any type of object.
Affected versions of this package are vulnerable to Relative Path Traversal when deployed on non-compliant Servlet containers. An unauthenticated attacker could gain access to files and directories outside the intended web root.
Notes:
This is only exploitable if the application is deployed as a WAR or with an embedded Servlet container, the Servlet container does not reject suspicious sequences and the application serves static resources with Spring resource handling.
Applications deployed on Apache Tomcat or Eclipse Jetty are not vulnerable, as long as default security features are not disabled in the configuration.
This vulnerability was also fixed in the commercial versions 6.1.22 and 5.3.44.
Remediation
Upgrade org.springframework:spring-beans to version 6.2.10 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-expression
- Introduced through: org.springframework:spring-context@5.3.39, org.springframework:spring-webmvc@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
org.springframework:spring-expression is a
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling. via caching of parsed Spring Expression Language (SpEL) expressions. An attacker can cause denial of service by supplying crafted user-controlled SpEL expressions that trigger unbounded growth of the expression cache. Over time, repeated evaluations can consume excessive memory, eventually leading to memory exhaustion and application unavailability.
Note: Exploitation typically requires a large number of expression evaluations, potentially millions of requests, even when reusing a single expression with dynamic inputs.
Remediation
Upgrade org.springframework:spring-expression to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-expression
- Introduced through: org.springframework:spring-context@5.3.39, org.springframework:spring-webmvc@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-context@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
Overview
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in the evaluation of user-supplied SpEL expressions containing the power operator (^) with a BigDecimal or BigInteger operand and a large exponent value. An attacker can cause excessive CPU and memory consumption by submitting specially crafted expressions.
Note: This is only exploitable if the application accepts and evaluates untrusted SpEL expressions and a BigDecimal or BigInteger value is accessible within the evaluation context.
Remediation
Upgrade org.springframework:spring-expression to version 7.0.9 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via static resource resolution when versioned resource support is enabled. An attacker can cause denial of service by sending crafted requests that trigger expensive resource resolution operations against filesystem-backed static resources. Repeated requests can consume server resources and keep HTTP connections occupied for extended periods, potentially degrading performance or rendering the application unavailable.
Note: This is only exploitable if the application uses Spring MVC or Spring WebFlux, serves static resources from the filesystem, and has versioned resource support enabled.
Remediation
Upgrade org.springframework:spring-webmvc to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Direct Request ('Forced Browsing') via shared caching of static resource resolutions across resource handlers. An attacker can gain unauthorized access to protected resources when a shared cache stores a resource resolution result from a publicly accessible handler and subsequently reuses it for a protected handler serving a resource with the same name. This can cause resources that should require authentication to be served without proper access control checks.
Note: This is only exploitable if the application uses Spring MVC or Spring WebFlux, configures multiple resource handlers with different resource locations, protects at least one handler with authentication, and uses a shared cache for resource resolution.
Remediation
Upgrade org.springframework:spring-webmvc to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.17.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Directory Traversal via the Script View Templates. An attacker can access sensitive file contents outside of the intended directories by leveraging the Java scripting engine in template rendering.
Note:
This is only exploitable if the application has a mapping for "/**" that results in view rendering, and where the view name is not explicitly specified.
Details
A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.
Directory Traversal vulnerabilities can be generally divided into two types:
- Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.
st is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public route.
If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.
curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
Note %2e is the URL encoded version of . (dot).
- Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as
Zip-Slip.
One way to achieve this is by using a malicious zip archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.
The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:
2018-04-15 22:04:29 ..... 19 19 good.txt
2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys
Remediation
Upgrade org.springframework:spring-webmvc to version 6.2.17, 7.0.6 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Directory Traversal via static resource resolution when versioned resource support is enabled. An attacker can perform path traversal and access files outside the configured static resource locations by sending crafted requests that abuse the versioned resource resolution mechanism.
Note: This is only exploitable if the application uses Spring MVC or Spring WebFlux, serves static resources from the filesystem, has versioned resource support enabled, and the attacker knows or can guess metadata associated with targeted resources.
Details
A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.
Directory Traversal vulnerabilities can be generally divided into two types:
- Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.
st is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public route.
If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.
curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
Note %2e is the URL encoded version of . (dot).
- Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as
Zip-Slip.
One way to achieve this is by using a malicious zip archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.
The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:
2018-04-15 22:04:29 ..... 19 19 good.txt
2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys
Remediation
Upgrade org.springframework:spring-webmvc to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
high severity
- Vulnerable module: org.hsqldb:hsqldb
- Introduced through: org.hsqldb:hsqldb@2.5.2
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.hsqldb:hsqldb@2.5.2Remediation: Upgrade to org.hsqldb:hsqldb@2.7.1.
Overview
Affected versions of this package are vulnerable to Remote Code Execution (RCE) when using java.sql.Statement or java.sql.PreparedStatement to process untrusted input. By default, it is allowed to call any static method of any Java class in the classpath resulting in code execution.
Workaround
Users who are unable to upgrade to the fixed version can set the system property hsqldb.method_class_names to classes which are allowed to be called. For example, System.setProperty("hsqldb.method_class_names", "abc") or Java argument -Dhsqldb.method_class_names="abc" can be used.
Remediation
Upgrade org.hsqldb:hsqldb to version 2.7.1 or higher.
References
high severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Inadequate Encryption Strength in the BcKeyStoreSpi.engineLoad() method, which for legacy BKS keystore versions 0 and 1 passes hMac.getMacSize() (20 bytes for SHA-1) to generateDerivedMacParameters(), where PKCS12ParametersGenerator divides it by 8 and yields a 16-bit MAC key. An attacker with access to a .bks file can brute-force the 2^16 possible keys offline and produce a valid MAC over a modified store, for example injecting a rogue trusted CA, by setting the file's version integer to a legacy value that reaches the weak-key branch. This requires the attacker to supply or modify a .bks keystore that the application loads, and the org.bouncycastle.bks.enable_v1 property does not gate this path because the default BKS type reaches the weak derivation in engineLoad() regardless.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
high severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Memory Allocation with Excessive Size Value in the BcKeyStoreSpi.engineLoad() method, which sizes buffers for the certificate chain array, encoded certificates, encoded key material, entry data, and PBE salts directly from readInt() length fields before the trailing HMAC integrity check runs. An attacker can exhaust memory and trigger an OutOfMemoryError in the process loading a keystore by supplying a BKS or UBER keystore file whose length fields are set to 0x7FFFFFFF, forcing allocation attempts of roughly 2 GB each. This requires the application to load an attacker-supplied or attacker-modified keystore of the BKS or UBER type.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
high severity
- Vulnerable module: org.springframework:spring-web
- Introduced through: org.springframework:spring-web@5.3.38 and org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38Remediation: Upgrade to org.springframework:spring-web@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-web@5.3.38
Overview
org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.
Affected versions of this package are vulnerable to Cross-site Scripting (XSS) via the Errors.getFieldErrors() or Errors.getFieldError() accessors when rendering field errors with HTML escaping enabled. An attacker can inject arbitrary HTML or JavaScript code by supplying crafted input that is not properly escaped.
Details
Cross-site scripting (or XSS) is a code vulnerability that occurs when an attacker “injects” a malicious script into an otherwise trusted website. The injected script gets downloaded and executed by the end user’s browser when the user interacts with the compromised website.
This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.
Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.
Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, < can be coded as < and > can be coded as > in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses < and > as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.
The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.
Types of attacks
There are a few methods by which XSS can be manipulated:
| Type | Origin | Description |
|---|---|---|
| Stored | Server | The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link. |
| Reflected | Server | The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser. |
| DOM-based | Client | The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data. |
| Mutated | The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters. |
Affected environments
The following environments are susceptible to an XSS attack:
- Web servers
- Application servers
- Web application environments
How to prevent
This section describes the top best practices designed to specifically protect your code:
- Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
- Convert special characters such as
?,&,/,<,>and spaces to their respective HTML or URL encoded equivalents. - Give users the option to disable client-side scripts.
- Redirect invalid requests.
- Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
- Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
- Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.
Remediation
Upgrade org.springframework:spring-web to version 7.0.9 or higher.
References
high severity
- Vulnerable module: org.springframework:spring-web
- Introduced through: org.springframework:spring-web@5.3.38 and org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38Remediation: Upgrade to org.springframework:spring-web@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-web@5.3.38
Overview
org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.
Affected versions of this package are vulnerable to Incomplete Cleanup via multipart request handling in WebFlux. An attacker can exhaust disk space by sending multipart requests with large parts that trigger creation of temporary files, which under certain conditions are not deleted after the request completes, leading to accumulation of temp files and denial of service.
Remediation
Upgrade org.springframework:spring-web to version 6.2.18, 7.0.7 or higher.
References
high severity
- Vulnerable module: ch.qos.logback:logback-core
- Introduced through: ch.qos.logback:logback-classic@1.5.25
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › ch.qos.logback:logback-classic@1.5.25 › ch.qos.logback:logback-core@1.5.25Remediation: Upgrade to ch.qos.logback:logback-classic@1.5.36.
Overview
ch.qos.logback:logback-core is a logback-core module.
Affected versions of this package are vulnerable to Expression Injection in the Janino-evaluated condition attribute of <if> configuration elements, handled by IfModelHandler, whose denylist blocked only the literal new operator. A user who can modify the logback configuration can execute arbitrary code by writing an <if> condition that evades that denylist, either through references it did not cover such as Runtime or springframework, or through Unicode escape sequences like \u that reconstruct the blocked new operator. Exploitation requires write access to the logback configuration and the use of conditional <if> processing with Janino present on the classpath.
Remediation
Upgrade ch.qos.logback:logback-core to version 1.5.36 or higher.
References
medium severity
- Vulnerable module: commons-configuration:commons-configuration
- Introduced through: com.netflix.hystrix:hystrix-core@1.5.18
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › com.netflix.hystrix:hystrix-core@1.5.18 › com.netflix.archaius:archaius-core@0.4.1 › commons-configuration:commons-configuration@1.8
Overview
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling due several issues in the loading of untrusted configurations. An attacker can cause excessive resource consumption by manipulating the configuration data or introducing unexpected usage patterns. Users affected by this issue are recommended to upgrade to the 2.x version line org.apache.commons:commons-configuration2, which fixes these issues.
Note: This is only exploitable if the application is configured to load untrusted configurations.
Remediation
There is no fixed version for commons-configuration:commons-configuration.
References
medium severity
new
- Vulnerable module: org.eclipse.jetty:jetty-security
- Introduced through: org.eclipse.jetty:jetty-webapp@9.4.57.v20241219
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.eclipse.jetty:jetty-webapp@9.4.57.v20241219 › org.eclipse.jetty:jetty-servlet@9.4.57.v20241219 › org.eclipse.jetty:jetty-security@9.4.57.v20241219
Overview
Affected versions of this package are vulnerable to Incorrect Authorization in the processing of security constraints when multiple constraints with identical http-method-omission sets and no url-patterns are present. An attacker can bypass intended security restrictions by crafting requests that exploit the improper combination of these constraints.
Remediation
Upgrade org.eclipse.jetty:jetty-security to version 9.4.65, 10.0.33, 11.0.33 or higher.
References
medium severity
new
- Vulnerable module: org.eclipse.jetty:jetty-security
- Introduced through: org.eclipse.jetty:jetty-webapp@9.4.57.v20241219
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.eclipse.jetty:jetty-webapp@9.4.57.v20241219 › org.eclipse.jetty:jetty-servlet@9.4.57.v20241219 › org.eclipse.jetty:jetty-security@9.4.57.v20241219
Overview
Affected versions of this package are vulnerable to Incorrect Authorization in the ConstraintSecurityHandler process when HTTP method constraints are defined with http-method-omission. An attacker can gain unauthorized access by crafting requests that use substrings of the defined HTTP methods, thereby bypassing intended security restrictions.
Remediation
Upgrade org.eclipse.jetty:jetty-security to version 9.4.65, 10.0.33, 11.0.33 or higher.
References
medium severity
- Vulnerable module: org.eclipse.jetty:jetty-server
- Introduced through: org.eclipse.jetty:jetty-webapp@9.4.57.v20241219
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.eclipse.jetty:jetty-webapp@9.4.57.v20241219 › org.eclipse.jetty:jetty-servlet@9.4.57.v20241219 › org.eclipse.jetty:jetty-security@9.4.57.v20241219 › org.eclipse.jetty:jetty-server@9.4.57.v20241219
Overview
org.eclipse.jetty:jetty-server is a lightweight highly scalable java based web server and servlet engine.
Affected versions of this package are vulnerable to Improper Validation of Consistency within Input through ComplianceUtils.verify(HttpURI, HttpFields, HttpCompliance, ComplianceViolation.Listener) in jetty-core/jetty-http/src/main/java/org/eclipse/jetty/http/ComplianceUtils.java. An attacker can bypass host consistency checks by sending a request whose :authority pseudo-header and Host header name different hosts, causing Jetty to accept the request and expose conflicting host identities to different code paths. This lets attacker-controlled host information survive inside the request, so logic that relies on Request.getServerName() or the URI authority can see one host while code reading the raw Host header sees another. In deployments that use host-based routing, ACLs, redirects, or tenant isolation, this can lead to incorrect request handling, host-based access control bypass, and attacker-influenced URL generation or logging.
Notes
- HTTP/1.1 already had its own authority/Host consistency path in
HttpConnection/HttpChannelState; the gap was in the HTTP/2 and HTTP/3 server entry flow where the shared compliance check was invoked before that comparison happened. - The mismatch check only rejects when both values are present and differ after normalizing case and default ports, so requests with only one of
:authorityorHostpresent are not part of this issue.
Remediation
Upgrade org.eclipse.jetty:jetty-server to version 9.4.61, 10.0.29, 11.0.29, 12.0.35, 12.1.9 or higher.
References
medium severity
- Vulnerable module: org.springframework:spring-core
- Introduced through: org.springframework:spring-core@5.3.39, org.springframework:spring-beans@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-core@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-beans@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-web@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-web@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-web@5.3.38 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-tx@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-tx@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
Overview
org.springframework:spring-core is a core package within the spring-framework that contains multiple classes and utilities.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via static resource resolution. An attacker can cause denial of service by sending crafted requests that are slow to resolve when accessing file-system-backed static resources, causing HTTP connections to remain occupied and exhausting server resources.
Note: This is only exploitable if all the following are true:
The application uses Spring MVC or Spring WebFlux.
Static resources are served from the file system.
The application is running on Windows.
Remediation
Upgrade org.springframework:spring-core to version 6.2.18, 7.0.7 or higher.
References
medium severity
- Vulnerable module: org.springframework:spring-expression
- Introduced through: org.springframework:spring-context@5.3.39, org.springframework:spring-webmvc@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
Affected versions of this package are vulnerable to Exposed Dangerous Method or Function via Spring Expression Language (SpEL) method invocation handling. An attacker can invoke arbitrary zero-argument methods by supplying crafted SpEL expressions, even in contexts intended to restrict method execution or provide read-only access. This may allow execution of unintended application logic and access to functionality that should not be exposed through expression evaluation.
Note: This is only exploitable if the application accepts and evaluates untrusted or user-controlled SpEL expressions.
Remediation
Upgrade org.springframework:spring-expression to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
medium severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Denial of Service (DoS) via MVC controller @RequestBody byte[] method parameters.
Note: This vulnerable open source versions are no longer supported and the fixed version 5.3.42 is only available for the commercial release.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade org.springframework:spring-webmvc to version 6.0.0 or higher.
References
medium severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to HTTP Request Smuggling. via multipart request parsing discrepancies between Spring MVC/WebFlux and intermediary security devices. An attacker can bypass Web Application Firewall (WAF) or proxy security controls by sending crafted multipart requests that are interpreted differently by the intermediary and the Spring application, allowing malicious content to evade inspection and reach the backend application.
Remediation
Upgrade org.springframework:spring-webmvc to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
medium severity
new
- Vulnerable module: org.ow2.asm:asm
- Introduced through: org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
Overview
Affected versions of this package are vulnerable to Inefficient Algorithmic Complexity via the computeAllFrames method in MethodWriter. An attacker can exhaust CPU and tie up class-file transformation threads for an unbounded time by supplying crafted class files for processing with ClassWriter.COMPUTE_FRAMES; their methods make frame computation’s fixpoint algorithm converge slowly.
Remediation
Upgrade org.ow2.asm:asm to version 9.11 or higher.
References
medium severity
new
- Vulnerable module: org.ow2.asm:asm
- Introduced through: org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
Overview
Affected versions of this package are vulnerable to Inefficient Algorithmic Complexity via the computeAllFrames() and computeMaxStackAndLocal() methods in MethodWriter. When ASM processes a crafted class file with thousands of overlapping exception handlers using COMPUTE_FRAMES or COMPUTE_MAXS, it allocates excessive Edge objects, causing an OutOfMemoryError that crashes the JVM.
Remediation
Upgrade org.ow2.asm:asm to version 9.11 or higher.
References
medium severity
new
- Vulnerable module: org.ow2.asm:asm
- Introduced through: org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
Overview
Affected versions of this package are vulnerable to Memory Allocation with Excessive Size Value via readBootstrapMethodsAttribute() in ClassReader. When an application parses an attacker-supplied class file, a crafted BootstrapMethods attribute with an unchecked declared length can trigger an allocation of roughly 2 GB from a file of about 100 bytes, causing an OutOfMemoryError that crashes the JVM or the thread processing the class.
Remediation
Upgrade org.ow2.asm:asm to version 9.11 or higher.
References
medium severity
new
- Vulnerable module: org.ow2.asm:asm
- Introduced through: org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
Overview
Affected versions of this package are vulnerable to Memory Allocation with Excessive Size Value via the addSubroutineRetSuccessors() method in the Label class. An attacker can crash the JVM by supplying a crafted invalid class file with multiple RET instructions for one JSR while ASM processes the subroutine.
Notes
- The attacker must get a user to load or process the crafted class file.
Remediation
Upgrade org.ow2.asm:asm to version 9.11 or higher.
References
medium severity
new
- Vulnerable module: org.ow2.asm:asm
- Introduced through: org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-commons@7.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.hk2:hk2@2.6.1 › org.glassfish.hk2:class-model@2.6.1 › org.ow2.asm:asm-util@7.1 › org.ow2.asm:asm-analysis@7.1 › org.ow2.asm:asm-tree@7.1 › org.ow2.asm:asm@7.1
Overview
Affected versions of this package are vulnerable to Uncontrolled Recursion via the parseType method in SignatureReader. An attacker can trigger a StackOverflowError and disrupt class transformation by supplying a crafted class file with a Signature attribute containing deeply nested generic type arguments.
Remediation
Upgrade org.ow2.asm:asm to version 9.11 or higher.
References
medium severity
- Vulnerable module: ch.qos.logback:logback-classic
- Introduced through: ch.qos.logback:logback-classic@1.5.25
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › ch.qos.logback:logback-classic@1.5.25Remediation: Upgrade to ch.qos.logback:logback-classic@1.5.33.
Overview
ch.qos.logback:logback-classic is a reliable, generic, fast and flexible logging library for Java.
Affected versions of this package are vulnerable to Deserialization of Untrusted Data in HardenedObjectInputStream, whose resolveClass allowlist admitted any class whose name starts with java.lang or java.util rather than matching specific authorized classes. An attacker can instantiate dangerous classes such as java.lang.ProcessBuilder during deserialization, reaching remote code execution through a gadget chain, by delivering a malicious serialized object to a logback component that deserializes it, such as its socket receiver for serialized logging events (SocketNode). Exploitation requires the application to deserialize attacker-controlled serialized data through logback, in practice via its socket-based receiver, together with a usable gadget class on the classpath.
Workaround
This vulnerability can be avoided by not exposing logback's socket-based serialized receivers, such as SocketReceiver and ServerSocketReceiver, to untrusted networks, which removes the path by which attacker-controlled serialized objects reach the deserialization filter.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502) is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, thus allowing the attacker to control the state or the flow of the execution.
Remediation
Upgrade ch.qos.logback:logback-classic to version 1.5.33 or higher.
References
medium severity
new
- Vulnerable module: ch.qos.logback:logback-classic
- Introduced through: ch.qos.logback:logback-classic@1.5.25
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › ch.qos.logback:logback-classic@1.5.25Remediation: Upgrade to ch.qos.logback:logback-classic@1.6.5.
Overview
ch.qos.logback:logback-classic is a reliable, generic, fast and flexible logging library for Java.
Affected versions of this package are vulnerable to Directory Traversal via unsanitized input in the MDCDiscriminator process. An attacker can create or append log files outside the intended directory by supplying crafted values, such as through HTTP headers, that influence the log file path. This is only exploitable if SiftingAppender is active and unsanitized data is used by MDCDiscriminator.
Workaround
This vulnerability can be mitigated by sanitizing relevant data provided by the user.
Details
A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.
Directory Traversal vulnerabilities can be generally divided into two types:
- Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.
st is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public route.
If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.
curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
Note %2e is the URL encoded version of . (dot).
- Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as
Zip-Slip.
One way to achieve this is by using a malicious zip archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.
The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:
2018-04-15 22:04:29 ..... 19 19 good.txt
2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys
Remediation
Upgrade ch.qos.logback:logback-classic to version 1.6.5 or higher.
References
medium severity
- Vulnerable module: ch.qos.logback:logback-core
- Introduced through: ch.qos.logback:logback-classic@1.5.25
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › ch.qos.logback:logback-classic@1.5.25 › ch.qos.logback:logback-core@1.5.25Remediation: Upgrade to ch.qos.logback:logback-classic@1.5.34.
Overview
ch.qos.logback:logback-core is a logback-core module.
Affected versions of this package are vulnerable to Deserialization of Untrusted Data in the HardenedObjectInputStream module. An attacker can instantiate unauthorized Proxy objects by supplying crafted serialized data to the SimpleSocketServer or SimpleSSLSocketServer, thereby bypassing intended security restrictions.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502) is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, thus allowing the attacker to control the state or the flow of the execution.
Remediation
Upgrade ch.qos.logback:logback-core to version 1.5.34 or higher.
References
medium severity
- Vulnerable module: ch.qos.logback:logback-core
- Introduced through: ch.qos.logback:logback-classic@1.5.25
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › ch.qos.logback:logback-classic@1.5.25 › ch.qos.logback:logback-core@1.5.25Remediation: Upgrade to ch.qos.logback:logback-classic@1.5.33.
Overview
ch.qos.logback:logback-core is a logback-core module.
Affected versions of this package are vulnerable to Deserialization of Untrusted Data in HardenedObjectInputStream, whose resolveClass allowlist admitted any class whose name starts with java.lang or java.util rather than matching specific authorized classes. An attacker can instantiate dangerous classes such as java.lang.ProcessBuilder during deserialization, reaching remote code execution through a gadget chain, by delivering a malicious serialized object to a logback component that deserializes it, such as its socket receiver for serialized logging events (SocketNode). Exploitation requires the application to deserialize attacker-controlled serialized data through logback, in practice via its socket-based receiver, together with a usable gadget class on the classpath.
Workaround
This vulnerability can be avoided by not exposing logback's socket-based serialized receivers, such as SocketReceiver and ServerSocketReceiver, to untrusted networks, which removes the path by which attacker-controlled serialized objects reach the deserialization filter.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502) is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, thus allowing the attacker to control the state or the flow of the execution.
Remediation
Upgrade ch.qos.logback:logback-core to version 1.5.33 or higher.
References
medium severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via the ASN1ObjectIdentifier. An attacker can cause excessive resource consumption by submitting specially crafted ASN.1 Object Identifiers, potentially leading to service disruption.
Note: This issue only applies to applications which do consume unvetted, or otherwise unvalidated, ASN.1 encodings.
Remediation
A fix was pushed into the master branch but not yet published.
References
medium severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling due to improper processing of large name constraint structures in PKIXCertPathReviewer. An attacker can cause excessive resource allocation by submitting specially crafted ASN.1 objects, potentially leading to service disruption.
Workaround
This vulnerability can be mitigated by limiting the size of ASN.1 objects that can be loaded from untrusted sources, thereby capping the maximum size of a Name Constraints structure.
Remediation
A fix was pushed into the master branch but not yet published.
References
medium severity
- Vulnerable module: org.eclipse.jetty:jetty-server
- Introduced through: org.eclipse.jetty:jetty-webapp@9.4.57.v20241219
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.eclipse.jetty:jetty-webapp@9.4.57.v20241219 › org.eclipse.jetty:jetty-servlet@9.4.57.v20241219 › org.eclipse.jetty:jetty-security@9.4.57.v20241219 › org.eclipse.jetty:jetty-server@9.4.57.v20241219
Overview
org.eclipse.jetty:jetty-server is a lightweight highly scalable java based web server and servlet engine.
Affected versions of this package are vulnerable to Interpretation Conflict due to inconsistent handling of invalid or unusual URIs in the parse() function on HttpURI.java. An attacker can bypass security controls or access restricted resources by crafting specially formatted URIs that are interpreted differently by various system components.
Remediation
Upgrade org.eclipse.jetty:jetty-server to version 12.0.31, 12.1.5 or higher.
References
medium severity
- Vulnerable module: org.mariadb.jdbc:mariadb-java-client
- Introduced through: org.mariadb.jdbc:mariadb-java-client@3.5.6
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.mariadb.jdbc:mariadb-java-client@3.5.6Remediation: Upgrade to org.mariadb.jdbc:mariadb-java-client@3.5.9.
Overview
Affected versions of this package are vulnerable to Access Control Bypass through the ClientMessage server-initiated LOCAL INFILE handling in src/main/java/org/mariadb/jdbc/message/ClientMessage.java. An attacker can make the client send a local file by replying to a LOAD DATA LOCAL INFILE request with a 0xfb LOCAL INFILE packet even when local infile support is disabled. This lets a rogue or man-in-the-middle server read the file the application already named in its query, exposing that file’s contents to the attacker and defeating the intended allowLocalInfile=false safeguard.
Remediation
Upgrade org.mariadb.jdbc:mariadb-java-client to version 2.7.14, 3.3.5, 3.4.3, 3.5.9 or higher.
References
medium severity
- Vulnerable module: org.springframework:spring-core
- Introduced through: org.springframework:spring-core@5.3.39, org.springframework:spring-beans@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-core@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-beans@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-web@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-web@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-web@5.3.38 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-tx@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-tx@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
org.springframework:spring-core is a core package within the spring-framework that contains multiple classes and utilities.
Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) via pattern processing in AntPathMatcher. An attacker can cause denial of service by supplying a crafted regular expression pattern to methods such as match(), matchStart(), or extractUriTemplateVariables(), triggering excessive backtracking and CPU consumption during pattern evaluation.
Note: This is only exploitable if attacker-controlled input is used directly or indirectly as the pattern argument to one of the affected AntPathMatcher methods.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.
The Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.
Let’s take the following regular expression as an example:
regex = /A(B|C+)+D/
This regular expression accomplishes the following:
AThe string must start with the letter 'A'(B|C+)+The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the+matches one or more times). The+at the end of this section states that we can look for one or more matches of this section.DFinally, we ensure this section of the string ends with a 'D'
The expression would match inputs such as ABBD, ABCCCCD, ABCBCCCD and ACCCCCD
It most cases, it doesn't take very long for a regex engine to find a match:
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD")'
0.04s user 0.01s system 95% cpu 0.052 total
$ time node -e '/A(B|C+)+D/.test("ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX")'
1.79s user 0.02s system 99% cpu 1.812 total
The entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.
Most Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as catastrophic backtracking.
Let's look at how our expression runs into this problem, using a shorter string: "ACCCX". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:
- CCC
- CC+C
- C+CC
- C+C+C.
The engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use RegEx 101 debugger to see the engine has to take a total of 38 steps before it can determine the string doesn't match.
From there, the number of steps the engine must use to validate a string just continues to grow.
| String | Number of C's | Number of steps |
|---|---|---|
| ACCCX | 3 | 38 |
| ACCCCX | 4 | 71 |
| ACCCCCX | 5 | 136 |
| ACCCCCCCCCCCCCCX | 14 | 65,553 |
By the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.
Remediation
Upgrade org.springframework:spring-core to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
medium severity
- Vulnerable module: org.springframework:spring-web
- Introduced through: org.springframework:spring-web@5.3.38 and org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38Remediation: Upgrade to org.springframework:spring-web@7.0.9.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-web@5.3.38
Overview
org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.
Affected versions of this package are vulnerable to HTTP Response Splitting via the Content-Disposition header when untrusted input is used to construct its value. An attacker can inject malicious characters to break the HTTP header or corrupt the framing of an outbound multipart body by supplying specially crafted file names or values.
Note: This is only exploitable if the application uses non-default or legacy HTTP connectors that do not reject malicious characters in header values, or if untrusted input is used to set the Content-Disposition of a part in an outbound multipart request body.
Remediation
Upgrade org.springframework:spring-web to version 7.0.9 or higher.
References
medium severity
new
- Vulnerable module: org.postgresql:postgresql
- Introduced through: org.postgresql:postgresql@42.7.8
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.postgresql:postgresql@42.7.8Remediation: Upgrade to org.postgresql:postgresql@42.7.14.
Overview
org.postgresql:postgresql is a Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database.
Affected versions of this package are vulnerable to Sensitive Information in Resource Not Removed Before Reuse in the ByteStreamWriter, CopyIn.writeToCopy, PGCopyOutputStream.write, LargeObject.write, or Blob.setBytes processes. An attacker can retrieve sensitive information from previous statements by supplying data shorter than the declared length, causing the padding to include bytes from earlier traffic. This is only exploitable if the attacker can both store and subsequently read back such a value.
Remediation
Upgrade org.postgresql:postgresql to version 42.7.14 or higher.
References
medium severity
- Vulnerable module: ch.qos.logback:logback-classic
- Introduced through: ch.qos.logback:logback-classic@1.5.25
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › ch.qos.logback:logback-classic@1.5.25Remediation: Upgrade to ch.qos.logback:logback-classic@1.6.3.
Overview
ch.qos.logback:logback-classic is a reliable, generic, fast and flexible logging library for Java.
Affected versions of this package are vulnerable to Directory Traversal in MDCBasedDiscriminator, used by SiftingAppender, which takes an MDC value as the discriminating key without removing path separators, so the value reaches the nested FileAppender path unsanitized. An attacker can direct log output to a file outside the intended directory by supplying an MDC value containing / or \ path segments. This requires a configuration whose SiftingAppender discriminates on MDC and whose nested FileAppender interpolates the discriminating key into its file path, with that MDC value populated from attacker-influenced input.
Note: This is a bypass of the fix for the vulnerability described in CVE-2025-11226.
Details
A Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with "dot-dot-slash (../)" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.
Directory Traversal vulnerabilities can be generally divided into two types:
- Information Disclosure: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.
st is a module for serving static files on web pages, and contains a vulnerability of this type. In our example, we will serve files from the public route.
If an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.
curl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa
Note %2e is the URL encoded version of . (dot).
- Writing arbitrary files: Allows the attacker to create or replace existing files. This type of vulnerability is also known as
Zip-Slip.
One way to achieve this is by using a malicious zip archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.
The following is an example of a zip archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in /root/.ssh/ overwriting the authorized_keys file:
2018-04-15 22:04:29 ..... 19 19 good.txt
2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys
Remediation
Upgrade ch.qos.logback:logback-classic to version 1.6.3 or higher.
References
medium severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Observable Discrepancy due to the timing difference between exceptions thrown when processing RSA key exchange handshakes, AKA Marvin.
Note: The implemented fix mitigates the leakage of data via the PKCS#1 interface, but does not fully alleviate the side-channel as it allows cases in which the padding check fails but the handshake succeeds.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
medium severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Uncontrolled Resource Consumption ('Resource Exhaustion') within the org.bouncycastle.openssl.PEMParser class. Parsing a file that has crafted ASN.1 data through the PEMParser causes an OutOfMemoryError.
Workaround
The attack can be avoided by filtering PEM requests containing EXTERNAL tagged encodings.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
medium severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in PKCS12KeyStoreSpi, which feeds the attacker-controlled KDF iteration count from a PKCS#12 file's MAC data and encrypted bags into key derivation during engineLoad() without enforcing any upper bound. An attacker can pin a CPU core for an extended period and exhaust server resources by supplying a PKCS#12 keystore whose MAC or bag PBE parameters declare a very large iteration count, up to 2^31-1. This requires the application to load the attacker-supplied keystore, and the costly derivation runs during MAC verification and bag decryption regardless of whether the supplied password matches.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
medium severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in the engineLoad() method of BcFKSKeyStoreSpi, which reads HMAC PBKDF2 or scrypt cost parameters from a keystore's integrity structures and runs key derivation before MAC verification, with PBKDF2 rejecting only a zero iteration count and scrypt enforcing no cost limit. An attacker can consume CPU for minutes to hours or allocate gigabytes of memory by supplying a .bcfks file that declares a large iteration count, up to 2^31-1, or large scrypt N/r values. This requires the application to load an attacker-supplied or modifiable .bcfks keystore, and the cost is incurred before the MAC mismatch is detected.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
medium severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in the solveQuadraticEquation() function used for certificate verification in ECCurve.java. Passing a large f2m parameter can cause excessive CPU consumption.
Remediation
There is no fixed version for org.bouncycastle:bcprov-jdk15on.
References
medium severity
- Vulnerable module: org.freemarker:freemarker
- Introduced through: org.freemarker:freemarker@2.3.34 and org.glassfish.jersey.ext:jersey-mvc-freemarker@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.freemarker:freemarker@2.3.34Remediation: Upgrade to org.freemarker:freemarker@2.3.35.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-mvc-freemarker@2.47 › org.freemarker:freemarker@2.3.34Remediation: Upgrade to org.glassfish.jersey.ext:jersey-mvc-freemarker@4.0.3.
Overview
org.freemarker:freemarker is a "template engine"; a generic tool to generate text output (anything from HTML to auto generated source code) based on templates.
Affected versions of this package are vulnerable to Relative Path Traversal through the ClassTemplateLoader and WebappTemplateLoader template-loading paths. An attacker can force loading of templates outside the intended base package or webapp subdirectory by supplying a malformed locale or template name that backs out with .. segments, causing FreeMarker to resolve unintended resources during localized lookup. This can let the attacker read templates or other loader-backed resources the configured TemplateLoader can reach, breaking application rendering and exposing content that should not be selected by template lookup.
Workarounds
- Disable localized lookup in FreeMarker configurations that are still on affected versions; this prevents the malformed-locale path traversal from being exercised during template lookup.
Remediation
Upgrade org.freemarker:freemarker to version 2.3.35 or higher.
References
medium severity
- Vulnerable module: org.springframework:spring-web
- Introduced through: org.springframework:spring-web@5.3.38 and org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38Remediation: Upgrade to org.springframework:spring-web@6.0.0.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-web@5.3.38
Overview
org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.
Affected versions of this package are vulnerable to Cross-site Scripting (XSS) via improper escaping in JavaScriptUtils.javaScriptEscape(). An attacker can inject arbitrary JavaScript code into a web page when user-controlled input is escaped using javaScriptEscape() and subsequently embedded into a JavaScript context. Incorrect escaping may allow malicious input to break out of the intended context and execute in the victim's browser.
Details
Cross-site scripting (or XSS) is a code vulnerability that occurs when an attacker “injects” a malicious script into an otherwise trusted website. The injected script gets downloaded and executed by the end user’s browser when the user interacts with the compromised website.
This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.
Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.
Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, < can be coded as < and > can be coded as > in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses < and > as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.
The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.
Types of attacks
There are a few methods by which XSS can be manipulated:
| Type | Origin | Description |
|---|---|---|
| Stored | Server | The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link. |
| Reflected | Server | The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser. |
| DOM-based | Client | The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data. |
| Mutated | The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters. |
Affected environments
The following environments are susceptible to an XSS attack:
- Web servers
- Application servers
- Web application environments
How to prevent
This section describes the top best practices designed to specifically protect your code:
- Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
- Convert special characters such as
?,&,/,<,>and spaces to their respective HTML or URL encoded equivalents. - Give users the option to disable client-side scripts.
- Redirect invalid requests.
- Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
- Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
- Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.
Remediation
Upgrade org.springframework:spring-web to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
medium severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Cross-site Scripting (XSS) via user-controlled values in the cssClass, cssErrorClass, or cssStyle attributes of JSP <form:*> tags. An attacker can inject arbitrary HTML or JavaScript into rendered pages by supplying crafted values for these attributes, potentially leading to cross-site scripting (XSS) and execution of malicious code in the browser of affected users.
Note: This is only exploitable if the application uses user-controlled input to populate the affected JSP form tag attributes.
Details
Cross-site scripting (or XSS) is a code vulnerability that occurs when an attacker “injects” a malicious script into an otherwise trusted website. The injected script gets downloaded and executed by the end user’s browser when the user interacts with the compromised website.
This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.
Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.
Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, < can be coded as < and > can be coded as > in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses < and > as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.
The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.
Types of attacks
There are a few methods by which XSS can be manipulated:
| Type | Origin | Description |
|---|---|---|
| Stored | Server | The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link. |
| Reflected | Server | The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser. |
| DOM-based | Client | The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data. |
| Mutated | The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters. |
Affected environments
The following environments are susceptible to an XSS attack:
- Web servers
- Application servers
- Web application environments
How to prevent
This section describes the top best practices designed to specifically protect your code:
- Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
- Convert special characters such as
?,&,/,<,>and spaces to their respective HTML or URL encoded equivalents. - Give users the option to disable client-side scripts.
- Redirect invalid requests.
- Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
- Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
- Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.
Remediation
Upgrade org.springframework:spring-webmvc to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
medium severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.0.0.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Open Redirect via view resolution for "/**" mappings without an explicitly specified view name. An attacker can trigger an open redirect by crafting a URL that causes the application to interpret user-controlled input as a view name with the redirect: prefix, resulting in a redirect to an arbitrary external host.
Note: In Spring MVC applications with the same configuration, an attacker can also trigger an internal forward using the forward: prefix.
Remediation
Upgrade org.springframework:spring-webmvc to version 6.0.0, 6.2.19, 7.0.8 or higher.
References
medium severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Open Redirect in the UrlFileNameViewController file when it is mapped with an end-of-path and lacks a configured prefix. An attacker can redirect users to arbitrary external URLs by crafting a specially constructed request.
Remediation
Upgrade org.springframework:spring-webmvc to version 7.0.9 or higher.
References
medium severity
- Vulnerable module: org.bouncycastle:bcprov-jdk15on
- Introduced through: org.bouncycastle:bcprov-jdk15on@1.70
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.bouncycastle:bcprov-jdk15on@1.70
Overview
org.bouncycastle:bcprov-jdk15on is a Java implementation of cryptographic algorithms.
Affected versions of this package are vulnerable to Information Exposure due to missing validation for the X.500 name of any certificate, subject, or issuer. The presence of a wild card may lead to information disclosure. This could allow a malicious user to obtain unauthorized information via blind LDAP Injection, exploring the environment and enumerating data.
Note:
The exploit depends on the structure of the target LDAP directory as well as what kind of errors are exposed to the user.
Remediation
A fix was pushed into the master branch but not yet published.
References
medium severity
- Module: ch.qos.logback:logback-classic
- Introduced through: ch.qos.logback:logback-classic@1.5.25
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › ch.qos.logback:logback-classic@1.5.25
Dual license: EPL-1.0, LGPL-2.1
medium severity
- Module: ch.qos.logback:logback-core
- Introduced through: ch.qos.logback:logback-classic@1.5.25
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › ch.qos.logback:logback-classic@1.5.25 › ch.qos.logback:logback-core@1.5.25
Dual license: EPL-1.0, LGPL-2.1
medium severity
- Module: net.sourceforge.jtds:jtds
- Introduced through: net.sourceforge.jtds:jtds@1.3.1
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › net.sourceforge.jtds:jtds@1.3.1
LGPL-3.0 license
medium severity
- Module: org.aspectj:aspectjweaver
- Introduced through: org.constretto:constretto-spring@2.2.3
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.aspectj:aspectjweaver@1.7.4
EPL-1.0 license
medium severity
- Module: org.mariadb.jdbc:mariadb-java-client
- Introduced through: org.mariadb.jdbc:mariadb-java-client@3.5.6
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.mariadb.jdbc:mariadb-java-client@3.5.6
LGPL-2.1 license
low severity
- Vulnerable module: org.springframework:spring-context
- Introduced through: org.springframework:spring-context@5.3.39, org.constretto:constretto-spring@2.2.3 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
Overview
Affected versions of this package are vulnerable to Improper Handling of Case Sensitivity due to String.toLowerCase() having some Locale dependent exceptions that could potentially result in fields not protected as expected.
Note:
The fix for CVE-2022-22968 made disallowedFields patterns in DataBinder case insensitive.
This vulnerability was also fixed in commercial versions 5.3.41 and 6.0.25.
Remediation
Upgrade org.springframework:spring-context to version 6.1.14 or higher.
References
low severity
- Vulnerable module: org.springframework:spring-core
- Introduced through: org.springframework:spring-core@5.3.39, org.springframework:spring-beans@5.3.39 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-core@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-beans@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-web@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-web@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-web@5.3.38 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-tx@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-context@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-jdbc@5.3.39 › org.springframework:spring-tx@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-jdbc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-expression@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.constretto:constretto-spring@2.2.3 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39 › org.springframework:spring-context@5.3.39 › org.springframework:spring-aop@5.3.39 › org.springframework:spring-beans@5.3.39 › org.springframework:spring-core@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
Overview
org.springframework:spring-core is a core package within the spring-framework that contains multiple classes and utilities.
Affected versions of this package are vulnerable to Improper Handling of Case Sensitivity due to String.toLowerCase() having some Locale dependent exceptions that could potentially result in fields not protected as expected.
Note:
The fix for CVE-2022-22968 made disallowedFields patterns in DataBinder case insensitive.
This vulnerability was also fixed in commercial versions 5.3.41 and 6.0.25.
Remediation
Upgrade org.springframework:spring-core to version 6.1.14 or higher.
References
low severity
- Vulnerable module: org.springframework:spring-web
- Introduced through: org.springframework:spring-web@5.3.38 and org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38Remediation: Upgrade to org.springframework:spring-web@6.1.14.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-web@5.3.38
Overview
org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.
Affected versions of this package are vulnerable to Improper Handling of Case Sensitivity due to String.toLowerCase() having some Locale dependent exceptions that could potentially result in fields not protected as expected.
Note:
The fix for CVE-2022-22968 made disallowedFields patterns in DataBinder case insensitive.
This vulnerability was also fixed in commercial versions 5.3.41 and 6.0.25.
Remediation
Upgrade org.springframework:spring-web to version 6.1.14 or higher.
References
low severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.18.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to HTTP Request Smuggling via the static resource resolution and caching mechanism. An attacker can poison the resource cache by sending crafted requests that cause resources to be cached with incorrect encodings when resource chain caching and encoded resource resolution are enabled. This can lead to denial of service by breaking front-end resource loading for subsequent clients.
Note: This is only exploitable if all the following is true:
The application is configuring the resource chain support with caching enabled.
The application adds support for encoded resource resolution.
The resource cache must be empty when the attacker has access to the application.
Remediation
Upgrade org.springframework:spring-webmvc to version 6.2.18, 7.0.7 or higher.
References
low severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.1.14.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Improper Handling of Case Sensitivity due to String.toLowerCase() having some Locale dependent exceptions that could potentially result in fields not protected as expected.
Note:
The fix for CVE-2022-22968 made disallowedFields patterns in DataBinder case insensitive.
This vulnerability was also fixed in commercial versions 5.3.41 and 6.0.25.
Remediation
Upgrade org.springframework:spring-webmvc to version 6.1.14 or higher.
References
low severity
- Vulnerable module: org.springframework:spring-web
- Introduced through: org.springframework:spring-web@5.3.38 and org.glassfish.jersey.ext:jersey-spring4@2.47
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-web@5.3.38Remediation: Upgrade to org.springframework:spring-web@6.2.17.
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.springframework:spring-web@5.3.38
Overview
org.springframework:spring-web is a package that provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.
Affected versions of this package are vulnerable to Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection'). The vulnerability exists in the handling of Server-Sent Events (SSE) when streaming plain text data. An attacker can inject crafted data into the event stream, breaking message boundaries and corrupting the stream delivered to other clients. By controlling streamed content, an attacker can manipulate how subsequent events are parsed by the client, potentially altering application state or injecting misleading data.
Note:
This is only exploitable if the application streams attacker-controlled data via SSE using unstructured/plain-text messages instead of a structured format (e.g., JSON).
Remediation
Upgrade org.springframework:spring-web to version 6.2.17, 7.0.6 or higher.
References
low severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@7.0.9.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Improper Neutralization in the ServerResponse.sse process. An attacker can corrupt the data stream sent to other users by injecting malicious or malformed data into the stream when the application uses plain text messages and the attacker controls the streamed data. This is only exploitable if the application uses Spring MVC's functional web framework, streams data using Server Sent Events (SSE), does not use a structured message format like JSON, and allows an attacker to control the streamed data.
Remediation
Upgrade org.springframework:spring-webmvc to version 7.0.9 or higher.
References
low severity
- Vulnerable module: org.springframework:spring-webmvc
- Introduced through: org.springframework:spring-webmvc@5.3.39
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.springframework:spring-webmvc@5.3.39Remediation: Upgrade to org.springframework:spring-webmvc@6.2.17.
Overview
org.springframework:spring-webmvc is a package that provides Model-View-Controller (MVC) architecture and ready components that can be used to develop flexible and loosely coupled web applications.
Affected versions of this package are vulnerable to Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection'). The vulnerability exists in the handling of Server-Sent Events (SSE) when streaming plain text data. An attacker can inject crafted data into the event stream, breaking message boundaries and corrupting the stream delivered to other clients. By controlling streamed content, an attacker can manipulate how subsequent events are parsed by the client, potentially altering application state or injecting misleading data.
Note:
This is only exploitable if the application streams attacker-controlled data via SSE using unstructured/plain-text messages instead of a structured format (e.g., JSON).
Remediation
Upgrade org.springframework:spring-webmvc to version 6.2.17, 7.0.6 or higher.
References
low severity
new
- Vulnerable module: jakarta.validation:jakarta.validation-api
- Introduced through: org.glassfish.jersey.core:jersey-server@2.47, org.glassfish.jersey.ext:jersey-mvc@2.47 and others
Detailed paths
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.core:jersey-server@2.47 › jakarta.validation:jakarta.validation-api@2.0.2
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-mvc@2.47 › org.glassfish.jersey.core:jersey-server@2.47 › jakarta.validation:jakarta.validation-api@2.0.2
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-spring4@2.47 › org.glassfish.jersey.core:jersey-server@2.47 › jakarta.validation:jakarta.validation-api@2.0.2
-
Introduced through: Cantara/Whydah-UserIdentityBackend@Cantara/Whydah-UserIdentityBackend › org.glassfish.jersey.ext:jersey-mvc-freemarker@2.47 › org.glassfish.jersey.ext:jersey-mvc@2.47 › org.glassfish.jersey.core:jersey-server@2.47 › jakarta.validation:jakarta.validation-api@2.0.2
Overview
Affected versions of this package are vulnerable to Improper Validation of Specified Type of Input in the run method of the ProviderSpecificBootstrapImpl class in Validation.java, which passes a caller influenced action to the single argument form of AccessController.doPrivileged, dropping the calling thread's restricted ProtectionDomain from the access control stack. Code running in a restricted domain can execute an arbitrary class's no-arg constructor under the library's broader permissions by passing any Class object to Validation.byProvider through a raw or unchecked cast, since the generic bound is erased and NewProviderInstance.run reaches clazz.newInstance before the cast to ValidationProvider is attempted. Exploitation requires a JVM running with a SecurityManager, a code source for the library granted more permissions than the caller, the ability to run code in process, and a reachable class in a privileged domain whose public no-arg constructor performs a security checked side effect, and the gadget's own ProtectionDomain stays on the stack so a self defined class yields nothing.
Note: Only deployments on JDK releases before 24 are affected. The run helper elevates privilege only when System.getSecurityManager() returns non-null, and JEP 486 permanently disabled the Security Manager in JDK 24.
Remediation
Upgrade jakarta.validation:jakarta.validation-api to version 4.0.0-M1 or higher.