7.8 High
CVSS2
Attack Vector
NETWORK
Attack Complexity
LOW
Authentication
NONE
Confidentiality Impact
NONE
Integrity Impact
NONE
Availability Impact
COMPLETE
AV:N/AC:L/Au:N/C:N/I:N/A:C
9.8 High
CVSS3
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
HIGH
Availability Impact
HIGH
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
0.073 Low
EPSS
Percentile
94.1%
The version of Splunk installed on the remote host is prior to tested version. It is, therefore, affected by a vulnerability as referenced in the SVD-2023-0808 advisory.
decode-uri-component 0.2.0 is vulnerable to Improper Input Validation resulting in DoS. (CVE-2022-38900)
The got package before 12.1.0 (also fixed in 11.8.5) for Node.js allows a redirect to a UNIX socket.
(CVE-2022-33987)
Prototype pollution vulnerability in function parseQuery in parseQuery.js in webpack loader-utils via the name variable in parseQuery.js. This affects all versions prior to 1.4.1 and 2.0.3. (CVE-2022-37601)
The package postcss before 8.2.13 are vulnerable to Regular Expression Denial of Service (ReDoS) via getAnnotationURL() and loadAnnotation() in lib/previous-map.js. The vulnerable regexes are caused mainly by the sub-pattern /*\s* sourceMappingURL=(.*). (CVE-2021-23382)
A Regular Expression Denial of Service (ReDOS) vulnerability was discovered in Color-String version 1.5.5 and below which occurs when the application is provided and checks a crafted invalid HWB string.
(CVE-2021-29060)
This affects the package glob-parent before 5.1.2. The enclosure regex used to check for strings ending in enclosure containing path separator. (CVE-2020-28469)
A Regular expression denial of service (ReDoS) flaw was found in Function interpolateName in interpolateName.js in webpack loader-utils 2.0.0 via the resourcePath variable in interpolateName.js.
(CVE-2022-37599)
A Regular expression denial of service (ReDoS) flaw was found in Function interpolateName in interpolateName.js in webpack loader-utils 2.0.0 via the url variable in interpolateName.js.
(CVE-2022-37603)
A vulnerability was found in the minimatch package. This flaw allows a Regular Expression Denial of Service (ReDoS) when calling the braceExpand function with specific arguments, resulting in a Denial of Service. (CVE-2022-3517)
moment is a JavaScript date library for parsing, validating, manipulating, and formatting dates. Affected versions of moment were found to use an inefficient parsing algorithm. Specifically using string-to-date parsing in moment (more specifically rfc2822 parsing, which is tried by default) has quadratic (N^2) complexity on specific inputs. Users may notice a noticeable slowdown is observed with inputs above 10k characters. Users who pass user-provided strings without sanity length checks to moment constructor are vulnerable to (Re)DoS attacks. The problem is patched in 2.29.4, the patch can be applied to all affected versions with minimal tweaking. Users are advised to upgrade. Users unable to upgrade should consider limiting date lengths accepted from user input. (CVE-2022-31129)
nth-check is vulnerable to Inefficient Regular Expression Complexity (CVE-2021-3803)
All versions of package path-parse are vulnerable to Regular Expression Denial of Service (ReDoS) via splitDeviceRe, splitTailRe, and splitPathRe regular expressions. ReDoS exhibits polynomial worst-case time complexity. (CVE-2021-23343)
qs before 6.10.3, as used in Express before 4.17.3 and other products, allows attackers to cause a Node process hang for an Express application because an __ proto__ key can be used. In many typical Express use cases, an unauthenticated remote attacker can place the attack payload in the query string of the URL that is used to visit the application, such as a[proto]=b&a[proto]&a[length]=100000000. The fix was backported to qs 6.9.7, 6.8.3, 6.7.3, 6.6.1, 6.5.3, 6.4.1, 6.3.3, and 6.2.4 (and therefore Express 4.17.3, which has deps: [email protected] in its release description, is not vulnerable). (CVE-2022-24999)
An authentication bypass vulnerability exists in libcurl prior to v8.0.0 where it reuses a previously established SSH connection despite the fact that an SSH option was modified, which should have prevented reuse. libcurl maintains a pool of previously used connections to reuse them for subsequent transfers if the configurations match. However, two SSH settings were omitted from the configuration check, allowing them to match easily, potentially leading to the reuse of an inappropriate connection. (CVE-2023-27538)
A double free vulnerability exists in libcurl <8.0.0 when sharing HSTS data between separate handles.
This sharing was introduced without considerations for do this sharing across separate threads but there was no indication of this fact in the documentation. Due to missing mutexes or thread locks, two threads sharing the same HSTS data could end up doing a double-free or use-after-free. (CVE-2023-27537)
An authentication bypass vulnerability exists libcurl <8.0.0 in the connection reuse feature which can reuse previously established connections with incorrect user permissions due to a failure to check for changes in the CURLOPT_GSSAPI_DELEGATION option. This vulnerability affects krb5/kerberos/negotiate/GSSAPI transfers and could potentially result in unauthorized access to sensitive information. The safest option is to not reuse connections if the CURLOPT_GSSAPI_DELEGATION option has been changed. (CVE-2023-27536)
An authentication bypass vulnerability exists in libcurl <8.0.0 in the FTP connection reuse feature that can result in wrong credentials being used during subsequent transfers. Previously created connections are kept in a connection pool for reuse if they match the current setup. However, certain FTP settings such as CURLOPT_FTP_ACCOUNT, CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_FTP_SSL_CCC, and CURLOPT_USE_SSL were not included in the configuration match checks, causing them to match too easily. This could lead to libcurl using the wrong credentials when performing a transfer, potentially allowing unauthorized access to sensitive information. (CVE-2023-27535)
A path traversal vulnerability exists in curl <8.0.0 SFTP implementation causes the tilde (~) character to be wrongly replaced when used as a prefix in the first path element, in addition to its intended use as the first element to indicate a path relative to the user’s home directory. Attackers can exploit this flaw to bypass filtering or execute arbitrary code by crafting a path like /~2/foo while accessing a server with a specific user. (CVE-2023-27534)
A vulnerability in input validation exists in curl <8.0 during communication using the TELNET protocol may allow an attacker to pass on maliciously crafted user name and telnet options during server negotiation.
The lack of proper input scrubbing allows an attacker to send content or perform option negotiation without the application’s intent. This vulnerability could be exploited if an application allows user input, thereby enabling attackers to execute arbitrary code on the system. (CVE-2023-27533)
An allocation of resources without limits or throttling vulnerability exists in curl <v7.88.0 based on the chained HTTP compression algorithms, meaning that a server response can be compressed multiple times and potentially with differentalgorithms. The number of acceptable links in this decompression chain wascapped, but the cap was implemented on a per-header basis allowing a maliciousserver to insert a virtually unlimited number of compression steps simply byusing many headers. The use of such a decompression chain could result in a malloc bomb, making curl end up spending enormous amounts of allocated heap memory, or trying to and returning out of memory errors. (CVE-2023-23916)
A cleartext transmission of sensitive information vulnerability exists in curl <v7.88.0 that could cause HSTS functionality to behave incorrectly when multiple URLs are requested in parallel. Using its HSTS support, curl can be instructed to use HTTPS instead of using an insecure clear-text HTTP step even when HTTP is provided in the URL. This HSTS mechanism would however surprisingly fail when multiple transfers are done in parallel as the HSTS cache file gets overwritten by the most recentlycompleted transfer. A later HTTP-only transfer to the earlier host name would then not get upgraded properly to HSTS.
(CVE-2023-23915)
A cleartext transmission of sensitive information vulnerability exists in curl <v7.88.0 that could cause HSTS functionality fail when multiple URLs are requested serially. Using its HSTS support, curl can be instructed to use HTTPS instead of usingan insecure clear-text HTTP step even when HTTP is provided in the URL. ThisHSTS mechanism would however surprisingly be ignored by subsequent transferswhen done on the same command line because the state would not be properlycarried on. (CVE-2023-23914)
A use after free vulnerability exists in curl <7.87.0. Curl can be asked to tunnel virtually all protocols it supports through an HTTP proxy. HTTP proxies can (and often do) deny such tunnel operations.
When getting denied to tunnel the specific protocols SMB or TELNET, curl would use a heap-allocated struct after it had been freed, in its transfer shutdown code path. (CVE-2022-43552)
A vulnerability exists in curl <7.87.0 HSTS check that could be bypassed to trick it to keep using HTTP.
Using its HSTS support, curl can be instructed to use HTTPS instead of using an insecure clear-text HTTP step even when HTTP is provided in the URL. However, the HSTS mechanism could be bypassed if the host name in the given URL first uses IDN characters that get replaced to ASCII counterparts as part of the IDN conversion. Like using the character UTF-8 U+3002 (IDEOGRAPHIC FULL STOP) instead of the common ASCII full stop (U+002E) .
. Then in a subsequent request, it does not detect the HSTS state and makes a clear text transfer. Because it would store the info IDN encoded but look for it IDN decoded. (CVE-2022-43551)
In curl before 7.86.0, the HSTS check could be bypassed to trick it into staying with HTTP. Using its HSTS support, curl can be instructed to use HTTPS directly (instead of using an insecure cleartext HTTP step) even when HTTP is provided in the URL. This mechanism could be bypassed if the host name in the given URL uses IDN characters that get replaced with ASCII counterparts as part of the IDN conversion, e.g., using the character UTF-8 U+3002 (IDEOGRAPHIC FULL STOP) instead of the common ASCII full stop of U+002E (.).
The earliest affected version is 7.77.0 2021-05-26. (CVE-2022-42916)
curl before 7.86.0 has a double free. If curl is told to use an HTTP proxy for a transfer with a non- HTTP(S) URL, it sets up the connection to the remote server by issuing a CONNECT request to the proxy, and then tunnels the rest of the protocol through. An HTTP proxy might refuse this request (HTTP proxies often only allow outgoing connections to specific port numbers, like 443 for HTTPS) and instead return a non-200 status code to the client. Due to flaws in the error/cleanup handling, this could trigger a double free in curl if one of the following schemes were used in the URL for the transfer: dict, gopher, gophers, ldap, ldaps, rtmp, rtmps, or telnet. The earliest affected version is 7.77.0. (CVE-2022-42915)
curl can be told to parse a .netrc
file for credentials. If that file endsin a line with 4095 consecutive non-white space letters and no newline, curlwould first read past the end of the stack-based buffer, and if the readworks, write a zero byte beyond its boundary.This will in most cases cause a segfault or similar, but circumstances might also cause different outcomes.If a malicious user can provide a custom netrc file to an application or otherwise affect its contents, this flaw could be used as denial- of-service. (CVE-2022-35260)
When doing HTTP(S) transfers, libcurl might erroneously use the read callback (CURLOPT_READFUNCTION
) to ask for data to send, even when the CURLOPT_POSTFIELDS
option has been set, if the same handle previously was used to issue a PUT
request which used that callback. This flaw may surprise the application and cause it to misbehave and either send off the wrong data or use memory after free or similar in the subsequent POST
request. The problem exists in the logic for a reused handle when it is changed from a PUT to a POST. (CVE-2022-32221)
When curl is used to retrieve and parse cookies from a HTTP(S) server, itaccepts cookies using control codes that when later are sent back to a HTTPserver might make the server return 400 responses.
Effectively allowing asister site to deny service to all siblings. (CVE-2022-35252)
When curl < 7.84.0 does FTP transfers secured by krb5, it handles message verification failures wrongly.
This flaw makes it possible for a Man-In-The-Middle attack to go unnoticed and even allows it to inject data to the client. (CVE-2022-32208)
When curl < 7.84.0 saves cookies, alt-svc and hsts data to local files, it makes the operation atomic by finalizing the operation with a rename from a temporary name to the final target file name.In that rename operation, it might accidentally widen the permissions for the target file, leaving the updated file accessible to more users than intended. (CVE-2022-32207)
curl < 7.84.0 supports chained HTTP compression algorithms, meaning that a serverresponse can be compressed multiple times and potentially with different algorithms. The number of acceptable links in this decompression chain was unbounded, allowing a malicious server to insert a virtually unlimited number of compression steps.The use of such a decompression chain could result in a malloc bomb, makingcurl end up spending enormous amounts of allocated heap memory, or trying toand returning out of memory errors. (CVE-2022-32206)
A malicious server can serve excessive amounts of Set-Cookie:
headers in a HTTP response to curl and curl < 7.84.0 stores all of them. A sufficiently large amount of (big) cookies make subsequent HTTP requests to this, or other servers to which the cookies match, create requests that become larger than the threshold that curl uses internally to avoid sending crazy large requests (1048576 bytes) and instead returns an error.This denial state might remain for as long as the same cookies are kept, match and haven’t expired. Due to cookie matching rules, a server on foo.example.com
can set cookies that also would match for bar.example.com
, making it it possible for a sister server to effectively cause a denial of service for a sibling site on the same second level domain using this method. (CVE-2022-32205)
Using its HSTS support, curl can be instructed to use HTTPS directly insteadof using an insecure clear- text HTTP step even when HTTP is provided in theURL. This mechanism could be bypassed if the host name in the given URL used atrailing dot while not using one when it built the HSTS cache. Or the otherway around
libcurl would reuse a previously created connection even when a TLS or SSHrelated option had been changed that should have prohibited reuse.libcurl keeps previously used connections in a connection pool for subsequenttransfers to reuse if one of them matches the setup. However, several TLS andSSH settings were left out from the configuration match checks, making themmatch too easily. (CVE-2022-27782)
libcurl provides the CURLOPT_CERTINFO
option to allow applications torequest details to be returned about a server’s certificate chain.Due to an erroneous function, a malicious server could make libcurl built withNSS get stuck in a never-ending busy-loop when trying to retrieve thatinformation.
(CVE-2022-27781)
The curl URL parser wrongly accepts percent-encoded URL separators like '/'when decoding the host name part of a URL, making it a different URL usingthe wrong host name when it is later retrieved.For example, a URL like http://example.com%2F127.0.0.1/
, would be allowed bythe parser and get transposed into http://example.com/127.0.0.1/
. This flawcan be used to circumvent filters, checks and more.
(CVE-2022-27780)
libcurl wrongly allows cookies to be set for Top Level Domains (TLDs) if thehost name is provided with a trailing dot.curl can be told to receive and send cookies. curl’s cookie engine can bebuilt with or without Public Suffix Listawareness. If PSL support not provided, a more rudimentary check exists to atleast prevent cookies from being set on TLDs. This check was broken if thehost name in the URL uses a trailing dot.This can allow arbitrary sites to set cookies that then would get sent to adifferent and unrelated site or domain. (CVE-2022-27779)
A use of incorrectly resolved name vulnerability fixed in 7.83.1 might remove the wrong file when --no- clobber
is used together with --remove-on-error
. (CVE-2022-27778)
A insufficiently protected credentials vulnerability in fixed in curl 7.83.0 might leak authentication or cookie header data on HTTP redirects to the same host but another port number. (CVE-2022-27776)
An information disclosure vulnerability exists in curl 7.65.0 to 7.82.0 are vulnerable that by using an IPv6 address that was in the connection pool but with a different zone id it could reuse a connection instead. (CVE-2022-27775)
An insufficiently protected credentials vulnerability exists in curl 4.9 to and include curl 7.82.0 are affected that could allow an attacker to extract credentials when follows HTTP(S) redirects is used with authentication could leak credentials to other services that exist on different protocols or port numbers.
(CVE-2022-27774)
An improper authentication vulnerability exists in curl 7.33.0 to and including 7.82.0 which might allow reuse OAUTH2-authenticated connections without properly making sure that the connection was authenticated with the same credentials as set for this transfer. This affects SASL-enabled protocols: SMPTP(S), IMAP(S), POP3(S) and LDAP(S) (openldap only). (CVE-2022-22576)
When curl >= 7.20.0 and <= 7.78.0 connects to an IMAP or POP3 server to retrieve data using STARTTLS to upgrade to TLS security, the server can respond and send back multiple responses at once that curl caches.
curl would then upgrade to TLS but not flush the in-queue of cached responses but instead continue using and trustingthe responses it got before the TLS handshake as if they were authenticated.Using this flaw, it allows a Man-In-The-Middle attacker to first inject the fake responses, then pass-through the TLS traffic from the legitimate server and trick curl into sending data back to the user thinking the attacker’s injected data comes from the TLS-protected server. (CVE-2021-22947)
A user can tell curl >= 7.20.0 and <= 7.78.0 to require a successful upgrade to TLS when speaking to an IMAP, POP3 or FTP server (--ssl-reqd
on the command line orCURLOPT_USE_SSL
set to CURLUSESSL_CONTROL
or CURLUSESSL_ALL
withlibcurl). This requirement could be bypassed if the server would return a properly crafted but perfectly legitimate response.This flaw would then make curl silently continue its operations
withoutTLS contrary to the instructions and expectations, exposing possibly sensitive data in clear text over the network. (CVE-2021-22946)
When sending data to an MQTT server, libcurl <= 7.73.0 and 7.78.0 could in some circumstances erroneously keep a pointer to an already freed memory area and both use that again in a subsequent call to send data and also free it again. (CVE-2021-22945)
libcurl-using applications can ask for a specific client certificate to be used in a transfer. This is done with the CURLOPT_SSLCERT
option (--cert
with the command line tool).When libcurl is built to use the macOS native TLS library Secure Transport, an application can ask for the client certificate by name or with a file name - using the same option. If the name exists as a file, it will be used instead of by name.If the appliction runs with a current working directory that is writable by other users (like /tmp
), a malicious user can create a file name with the same name as the app wants to use by name, and thereby trick the application to use the file based cert instead of the one referred to by name making libcurl send the wrong client certificate in the TLS connection handshake. (CVE-2021-22926)
curl supports the -t
command line option, known as CURLOPT_TELNETOPTIONS
in libcurl. This rarely used option is used to send variable=content pairs toTELNET servers.Due to flaw in the option parser for sending NEW_ENV
variables, libcurlcould be made to pass on uninitialized data from a stack based buffer to theserver. Therefore potentially revealing sensitive internal information to theserver using a clear- text network protocol.This could happen because curl did not call and use sscanf() correctly whenparsing the string provided by the application. (CVE-2021-22925)
libcurl keeps previously used connections in a connection pool for subsequenttransfers to reuse, if one of them matches the setup.Due to errors in the logic, the config matching function did not take ‘issuercert’ into account and it compared the involved paths case insensitively,which could lead to libcurl reusing wrong connections.File paths are, or can be, case sensitive on many systems but not all, and caneven vary depending on used file systems.The comparison also didn’t include the ‘issuer cert’ which a transfer can setto qualify how to verify the server certificate. (CVE-2021-22924)
When curl is instructed to get content using the metalink feature, and a user name and password are used to download the metalink XML file, those same credentials are then subsequently passed on to each of the servers from which curl will download or try to download the contents from. Often contrary to the user’s expectations and intentions and without telling the user it happened. (CVE-2021-22923)
When curl is instructed to download content using the metalink feature, thecontents is verified against a hash provided in the metalink XML file.The metalink XML file points out to the client how to get the same contentfrom a set of different URLs, potentially hosted by different servers and theclient can then download the file from one or several of them. In a serial orparallel manner.If one of the servers hosting the contents has been breached and the contentsof the specific file on that server is replaced with a modified payload, curlshould detect this when the hash of the file mismatches after a completeddownload.
It should remove the contents and instead try getting the contentsfrom another URL. This is not done, and instead such a hash mismatch is onlymentioned in text and the potentially malicious content is kept in the file ondisk. (CVE-2021-22922)
curl 7.75.0 through 7.76.1 suffers from a use-after-free vulnerability resulting in already freed memory being used when a TLS 1.3 session ticket arrives over a connection. A malicious server can use this in rare unfortunate circumstances to potentially reach remote code execution in the client. When libcurl at run-time sets up support for TLS 1.3 session tickets on a connection using OpenSSL, it stores pointers to the transfer in-memory object for later retrieval when a session ticket arrives. If the connection is used by multiple transfers (like with a reused HTTP/1.1 connection or multiplexed HTTP/2 connection) that first transfer object might be freed before the new session is established on that connection and then the function will access a memory buffer that might be freed. When using that memory, libcurl might even call a function pointer in the object, making it possible for a remote code execution if the server could somehow manage to get crafted memory content into the correct place in memory. (CVE-2021-22901)
curl 7.7 through 7.76.1 suffers from an information disclosure when the -t
command line option, known as CURLOPT_TELNETOPTIONS
in libcurl, is used to send variable=content pairs to TELNET servers. Due to a flaw in the option parser for sending NEW_ENV variables, libcurl could be made to pass on uninitialized data from a stack based buffer to the server, resulting in potentially revealing sensitive internal information to the server using a clear-text network protocol. (CVE-2021-22898)
curl 7.61.0 through 7.76.1 suffers from exposure of data element to wrong session due to a mistake in the code for CURLOPT_SSL_CIPHER_LIST when libcurl is built to use the Schannel TLS library. The selected cipher set was stored in a single static variable in the library, which has the surprising side-effect that if an application sets up multiple concurrent transfers, the last one that sets the ciphers will accidentally control the set used by all transfers. In a worst-case scenario, this weakens transport security significantly. (CVE-2021-22897)
curl 7.63.0 to and including 7.75.0 includes vulnerability that allows a malicious HTTPS proxy to MITM a connection due to bad handling of TLS 1.3 session tickets. When using a HTTPS proxy and TLS 1.3, libcurl can confuse session tickets arriving from the HTTPS proxy but work as if they arrived from the remote server and then wrongly short-cut the host handshake. When confusing the tickets, a HTTPS proxy can trick libcurl to use the wrong session ticket resume for the host and thereby circumvent the server TLS certificate check and make a MITM attack to be possible to perform unnoticed. Note that such a malicious HTTPS proxy needs to provide a certificate that curl will accept for the MITMed server for an attack to work - unless curl has been told to ignore the server certificate check. (CVE-2021-22890)
curl 7.1.1 to and including 7.75.0 is vulnerable to an Exposure of Private Personal Information to an Unauthorized Actor by leaking credentials in the HTTP Referer: header. libcurl does not strip off user credentials from the URL when automatically populating the Referer: HTTP request header field in outgoing HTTP requests, and therefore risks leaking sensitive data to the server that is the target of the second HTTP request. (CVE-2021-22876)
curl 7.41.0 through 7.73.0 is vulnerable to an improper check for certificate revocation due to insufficient verification of the OCSP response. (CVE-2020-8286)
curl 7.21.0 to and including 7.73.0 is vulnerable to uncontrolled recursion due to a stack overflow issue in FTP wildcard match parsing. (CVE-2020-8285)
A malicious server can use the FTP PASV response to trick curl 7.73.0 and earlier into connecting back to a given IP address and port, and this way potentially make curl extract information about services that are otherwise private and not disclosed, for example doing port scanning and service banner extractions.
(CVE-2020-8284)
Due to use of a dangling pointer, libcurl 7.29.0 through 7.71.1 can use the wrong connection when sending data. (CVE-2020-8231)
curl 7.20.0 through 7.70.0 is vulnerable to improper restriction of names for files and other resources that can lead too overwriting a local file when the -J flag is used. (CVE-2020-8177)
curl 7.62.0 through 7.70.0 is vulnerable to an information disclosure vulnerability that can lead to a partial password being leaked over the network and to the DNS server(s). (CVE-2020-8169)
Incorrect conversion of certain invalid paths to valid, absolute paths in Clean in path/filepath before Go 1.17.11 and Go 1.18.3 on Windows allows potential directory traversal attack. (CVE-2022-29804)
A too-short encoded message can cause a panic in Float.GobDecode and Rat GobDecode in math/big in Go before 1.17.13 and 1.18.5, potentially allowing a denial of service. (CVE-2022-32189)
Improper exposure of client IP addresses in net/http before Go 1.17.12 and Go 1.18.4 can be triggered by calling httputil.ReverseProxy.ServeHTTP with a Request.Header map containing a nil value for the X-Forwarded-For header, which causes ReverseProxy to set the client IP as the value of the X-Forwarded-For header. (CVE-2022-32148)
Uncontrolled recursion in Decoder.Decode in encoding/gob before Go 1.17.12 and Go 1.18.4 allows an attacker to cause a panic due to stack exhaustion via a message which contains deeply nested structures.
(CVE-2022-30635)
Uncontrolled recursion in Unmarshal in encoding/xml before Go 1.17.12 and Go 1.18.4 allows an attacker to cause a panic due to stack exhaustion via unmarshalling an XML document into a Go struct which has a nested field that uses the ‘any’ field tag. (CVE-2022-30633)
Uncontrolled recursion in Glob in path/filepath before Go 1.17.12 and Go 1.18.4 allows an attacker to cause a panic due to stack exhaustion via a path containing a large number of path separators.
(CVE-2022-30632)
Uncontrolled recursion in Reader.Read in compress/gzip before Go 1.17.12 and Go 1.18.4 allows an attacker to cause a panic due to stack exhaustion via an archive containing a large number of concatenated 0-length compressed files. (CVE-2022-30631)
Uncontrolled recursion in Glob in io/fs before Go 1.17.12 and Go 1.18.4 allows an attacker to cause a panic due to stack exhaustion via a path which contains a large number of path separators.
(CVE-2022-30630)
Non-random values for ticket_age_add in session tickets in crypto/tls before Go 1.17.11 and Go 1.18.3 allow an attacker that can observe TLS handshakes to correlate successive connections by comparing ticket ages during session resumption. (CVE-2022-30629)
Code injection in Cmd.Start in os/exec before Go 1.17.11 and Go 1.18.3 allows execution of any binaries in the working directory named either …com or …exe by calling Cmd.Run, Cmd.Start, Cmd.Output, or Cmd.CombinedOutput when Cmd.Path is unset. (CVE-2022-30580)
Uncontrolled recursion in Decoder.Skip in encoding/xml before Go 1.17.12 and Go 1.18.4 allows an attacker to cause a panic due to stack exhaustion via a deeply nested XML document. (CVE-2022-28131)
Uncontrolled recursion in the Parse functions in go/parser before Go 1.17.12 and Go 1.18.4 allow an attacker to cause a panic due to stack exhaustion via deeply nested types or declarations. (CVE-2022-1962)
Acceptance of some invalid Transfer-Encoding headers in the HTTP/1 client in net/http before Go 1.17.12 and Go 1.18.4 allows HTTP request smuggling if combined with an intermediate server that also improperly fails to reject the header as invalid. (CVE-2022-1705)
Infinite loop in Read in crypto/rand before Go 1.17.11 and Go 1.18.3 on Windows allows attacker to cause an indefinite hang by passing a buffer larger than 1 << 32 - 1 bytes. (CVE-2022-30634)
Go before 1.17.10 and 1.18.x before 1.18.2 has Incorrect Privilege Assignment. When called with a non-zero flags parameter, the Faccessat function could incorrectly report that a file is accessible.
(CVE-2022-29526)
The generic P-256 feature in crypto/elliptic in Go before 1.17.9 and 1.18.x before 1.18.1 allows a panic via long scalar input. (CVE-2022-28327)
encoding/pem in Go before 1.17.9 and 1.18.x before 1.18.1 has a Decode stack overflow via a large amount of PEM data. (CVE-2022-24675)
The golang.org/x/crypto/ssh package before 0.0.0-20220314234659-1baeb1ce4c0b for Go allows an attacker to crash a server in certain circumstances involving AddHostKey. (CVE-2022-27191)
regexp.Compile in Go before 1.16.15 and 1.17.x before 1.17.8 allows stack exhaustion via a deeply nested expression. (CVE-2022-24921)
Curve.IsOnCurve in crypto/elliptic in Go before 1.16.14 and 1.17.x before 1.17.7 can incorrectly return true in situations with a big.Int value that is not a valid field element. (CVE-2022-23806)
cmd/go in Go before 1.16.14 and 1.17.x before 1.17.7 can misinterpret branch names that falsely appear to be version tags. This can lead to incorrect access control if an actor is supposed to be able to create branches but not tags. (CVE-2022-23773)
Rat.SetString in math/big in Go before 1.16.14 and 1.17.x before 1.17.7 has an overflow that can lead to Uncontrolled Memory Consumption. (CVE-2022-23772)
In archive/zip in Go before 1.16.8 and 1.17.x before 1.17.1, a crafted archive header (falsely designating that many files are present) can cause a NewReader or OpenReader panic. NOTE: this issue exists because of an incomplete fix for CVE-2021-33196. (CVE-2021-39293)
net/http in Go before 1.16.12 and 1.17.x before 1.17.5 allows uncontrolled memory consumption in the header canonicalization cache via HTTP/2 requests. (CVE-2021-44716)
Go before 1.16.12 and 1.17.x before 1.17.5 on UNIX allows write operations to an unintended file or unintended network connection as a consequence of erroneous closing of file descriptor 0 after file- descriptor exhaustion. (CVE-2021-44717)
Go before 1.16.10 and 1.17.x before 1.17.3 allows an archive/zip Reader.Open panic via a crafted ZIP archive containing an invalid name or an empty filename field. (CVE-2021-41772)
ImportedSymbols in debug/macho (for Open or OpenFat) in Go before 1.16.10 and 1.17.x before 1.17.3 Accesses a Memory Location After the End of a Buffer, aka an out-of-bounds slice situation.
(CVE-2021-41771)
Go before 1.16.9 and 1.17.x before 1.17.2 has a Buffer Overflow via large arguments in a function invocation from a WASM module, when GOARCH=wasm GOOS=js is used. (CVE-2021-38297)
Go before 1.15.15 and 1.16.x before 1.16.7 has a race condition that can lead to a net/http/httputil ReverseProxy panic upon an ErrAbortHandler abort. (CVE-2021-36221)
Go before 1.17 does not properly consider extraneous zero characters at the beginning of an IP address octet, which (in some situations) allows attackers to bypass access control that is based on IP addresses, because of unexpected octal interpretation. This affects net.ParseIP and net.ParseCIDR. (CVE-2021-29923)
In Go before 1.15.13 and 1.16.x before 1.16.5, there can be a panic for a large exponent to the math/big.Rat SetString or UnmarshalText method. (CVE-2021-33198)
In Go before 1.15.13 and 1.16.x before 1.16.5, some configurations of ReverseProxy (from net/http/httputil) result in a situation where an attacker is able to drop arbitrary headers.
(CVE-2021-33197)
In archive/zip in Go before 1.15.13 and 1.16.x before 1.16.5, a crafted file count (in an archive’s header) can cause a NewReader or OpenReader panic. (CVE-2021-33196)
Go before 1.15.13 and 1.16.x before 1.16.5 has functions for DNS lookups that do not validate replies from DNS servers, and thus a return value may contain an unsafe injection (e.g., XSS) that does not conform to the RFC1035 format. (CVE-2021-33195)
The crypto/tls package of Go through 1.16.5 does not properly assert that the type of public key in an X.509 certificate matches the expected type when doing a RSA based key exchange, allowing a malicious TLS server to cause a TLS client to panic. (CVE-2021-34558)
net/http in Go before 1.15.12 and 1.16.x before 1.16.4 allows remote attackers to cause a denial of service (panic) via a large header to ReadRequest or ReadResponse. Server, Transport, and Client can each be affected in some configurations. (CVE-2021-31525)
golang.org/x/net before v0.0.0-20210520170846-37e1c6afe023 allows attackers to cause a denial of service (infinite loop) via crafted ParseFragment input. (CVE-2021-33194)
archive/zip in Go 1.16.x before 1.16.1 allows attackers to cause a denial of service (panic) upon attempted use of the Reader.Open API for a ZIP archive in which …/ occurs at the beginning of any filename. (CVE-2021-27919)
encoding/xml in Go before 1.15.9 and 1.16.x before 1.16.1 has an infinite loop if a custom TokenReader (for xml.NewTokenDecoder) returns EOF in the middle of an element. This can occur in the Decode, DecodeElement, or Skip method. (CVE-2021-27918)
Certificate.Verify in crypto/x509 in Go 1.18.x before 1.18.1 can be caused to panic on macOS when presented with certain malformed certificates. This allows a remote TLS server to cause a TLS client to panic. (CVE-2022-27536)
An attacker may cause a denial of service by crafting an Accept-Language header which ParseAcceptLanguage will take significant time to parse. (CVE-2022-32149)
Sqlalchemy mako before 1.2.2 is vulnerable to Regular expression Denial of Service when using the Lexer class to parse. This also affects babelplugin and linguaplugin. (CVE-2022-40023)
The x/crypto/ssh package before 0.0.0-20211202192323-5770296d904e of golang.org/x/crypto allows an attacker to panic an SSH server. (CVE-2021-43565)
golang.org/x/text/language in golang.org/x/text before 0.3.7 can panic with an out-of-bounds read during BCP 47 language tag parsing. Index calculation is mishandled. If parsing untrusted user input, this can be used as a vector for a denial-of-service attack. (CVE-2021-38561)
Due to unsanitized NUL values, attackers may be able to maliciously set environment variables on Windows.
In syscall.StartProcess and os/exec.Cmd, invalid environment variable values containing NUL values are not properly checked for. A malicious environment variable value can exploit this behavior to set a value for a different environment variable. For example, the environment variable string A=B\x00C=D sets the variables A=B and C=D. (CVE-2022-41716)
An issue discovered in Python Charmers Future 0.18.2 and earlier allows remote attackers to cause a denial of service via crafted Set-Cookie header from malicious web server. (CVE-2022-40899)
In FasterXML jackson-databind before versions 2.13.4.1 and 2.12.17.1, resource exhaustion can occur because of a lack of a check in primitive value deserializers to avoid deep wrapper array nesting, when the UNWRAP_SINGLE_VALUE_ARRAYS feature is enabled. (CVE-2022-42003)
A nil pointer dereference in the golang.org/x/crypto/ssh component through v0.0.0-20201203163018-be400aefbc4c for Go allows remote attackers to cause a denial of service against SSH servers. (CVE-2020-29652)
Programs which compile regular expressions from untrusted sources may be vulnerable to memory exhaustion or denial of service. The parsed regexp representation is linear in the size of the input, but in some cases the constant factor can be as high as 40,000, making relatively small regexps consume much larger amounts of memory. After fix, each regexp being parsed is limited to a 256 MB memory footprint. Regular expressions whose representation would use more space than that are rejected. Normal use of regular expressions is unaffected. (CVE-2022-41715)
On Windows, restricted files can be accessed via os.DirFS and http.Dir. The os.DirFS function and http.Dir type provide access to a tree of files rooted at a given directory. These functions permit access to Windows device files under that root. For example, os.DirFS(C:/tmp).Open(COM1) opens the COM1 device.
Both os.DirFS and http.Dir only provide read-only filesystem access. In addition, on Windows, an os.DirFS for the directory (the root of the current drive) can permit a maliciously crafted path to escape from the drive and access any path on the system. With fix applied, the behavior of os.DirFS() has changed.
Previously, an empty root was treated equivalently to /, so os.DirFS().Open(tmp) would open the path /tmp. This now returns an error. (CVE-2022-41720)
A parsing issue similar to CVE-2022-3171, but with Message-Type Extensions in protobuf-java core and lite versions prior to 3.21.7, 3.20.3, 3.19.6 and 3.16.3 can lead to a denial of service attack. Inputs containing multiple instances of non-repeated embedded messages with repeated or unknown fields causes objects to be converted back-n-forth between mutable and immutable forms, resulting in potentially long garbage collection pauses. We recommend updating to the versions mentioned above. (CVE-2022-3510)
In net/http in Go before 1.18.6 and 1.19.x before 1.19.1, attackers can cause a denial of service because an HTTP/2 connection can hang during closing if shutdown were preempted by a fatal error. (CVE-2022-27664)
Certifi is a curated collection of Root Certificates for validating the trustworthiness of SSL certificates while verifying the identity of TLS hosts. Certifi 2022.12.07 removes root certificates from TrustCor from the root store. These are in the process of being removed from Mozilla’s trust store.
TrustCor’s root certificates are being removed pursuant to an investigation prompted by media reporting that TrustCor’s ownership also operated a business that produced spyware. Conclusions of Mozilla’s investigation can be found in the linked google group discussion. (CVE-2022-23491)
Requests forwarded by ReverseProxy include the raw query parameters from the inbound request, including unparsable parameters rejected by net/http. This could permit query parameter smuggling when a Go proxy forwards a parameter with an unparsable value. After fix, ReverseProxy sanitizes the query parameters in the forwarded query when the outbound request’s Form field is set after the ReverseProxy. Director function returns, indicating that the proxy has parsed the query parameters. Proxies which do not parse query parameters continue to forward the original query parameters unchanged. (CVE-2022-2880)
A parsing issue similar to CVE-2022-3171, but with textformat in protobuf-java core and lite versions prior to 3.21.7, 3.20.3, 3.19.6 and 3.16.3 can lead to a denial of service attack. Inputs containing multiple instances of non-repeated embedded messages with repeated or unknown fields causes objects to be converted back-n-forth between mutable and immutable forms, resulting in potentially long garbage collection pauses. We recommend updating to the versions mentioned above. (CVE-2022-3509)
NULL Pointer Dereference allows attackers to cause a denial of service (or application crash). This only applies when lxml is used together with libxml2 2.9.10 through 2.9.14. libxml2 2.9.9 and earlier are not affected. It allows triggering crashes through forged input data, given a vulnerable code sequence in the application. The vulnerability is caused by the iterwalk function (also used by the canonicalize function). Such code shouldn’t be in wide-spread use, given that parsing + iterwalk would usually be replaced with the more efficient iterparse function. However, an XML converter that serialises to C14N would also be vulnerable, for example, and there are legitimate use cases for this code sequence. If untrusted input is received (also remotely) and processed via iterwalk function, a crash can be triggered.
(CVE-2022-2309)
An issue was discovered in pip (all versions) because it installs the version with the highest version number, even if the user had intended to obtain a private package from a private index. This only affects use of the --extra-index-url option, and exploitation requires that the package does not already exist in the public index (and thus the attacker can put the package there with an arbitrary version number). NOTE:
it has been reported that this is intended functionality and the user is responsible for using --extra- index-url securely (CVE-2018-20225)
In x/text in Go 1.15.4, an index out of range panic occurs in language.ParseAcceptLanguage while parsing the -u- extension. (x/text/language is supposed to be able to parse an HTTP Accept-Language header.) (CVE-2020-28851)
In FasterXML jackson-databind before 2.13.4, resource exhaustion can occur because of a lack of a check in BeanDeserializer._deserializeFromArray to prevent use of deeply nested arrays. An application is vulnerable only with certain customized choices for deserialization. (CVE-2022-42004)
A parsing vulnerability for the MessageSet type in the ProtocolBuffers versions prior to and including 3.16.1, 3.17.3, 3.18.2, 3.19.4, 3.20.1 and 3.21.5 for protobuf-cpp, and versions prior to and including 3.16.1, 3.17.3, 3.18.2, 3.19.4, 3.20.1 and 4.21.5 for protobuf-python can lead to out of memory failures.
A specially crafted message with multiple key-value per elements creates parsing issues, and can lead to a Denial of Service against services receiving unsanitized input. We recommend upgrading to versions 3.18.3, 3.19.5, 3.20.2, 3.21.6 for protobuf-cpp and 3.18.3, 3.19.5, 3.20.2, 4.21.6 for protobuf-python. Versions for 3.16 and 3.17 are no longer updated. (CVE-2022-1941)
A parsing issue with binary data in protobuf-java core and lite versions prior to 3.21.7, 3.20.3, 3.19.6 and 3.16.3 can lead to a denial of service attack. Inputs containing multiple instances of non-repeated embedded messages with repeated or unknown fields causes objects to be converted back-n-forth between mutable and immutable forms, resulting in potentially long garbage collection pauses. We recommend updating to the versions mentioned above. (CVE-2022-3171)
Reader.Read does not set a limit on the maximum size of file headers. A maliciously crafted archive could cause Read to allocate unbounded amounts of memory, potentially causing resource exhaustion or panics.
After fix, Reader.Read limits the maximum size of header blocks to 1 MiB. (CVE-2022-2879)
An issue in protobuf-java allowed the interleaving of com.google.protobuf.UnknownFieldSet fields in such a way that would be processed out of order. A small malicious payload can occupy the parser for several minutes by creating large numbers of short-lived objects that cause frequent, repeated pauses. We recommend upgrading libraries beyond the vulnerable versions. (CVE-2021-22569)
In Apache Commons IO before 2.7, When invoking the method FileNameUtils.normalize with an improper input string, like //…/foo, or \…\foo, the result would be the same value, thus possibly providing access to files in the parent directory, but not further above (thus limited path traversal), if the calling code would use the result to construct a path value. (CVE-2021-29425)
The Beaker library through 1.11.0 for Python is affected by deserialization of untrusted data, which could lead to arbitrary code execution. (CVE-2013-7489)
JSDom improperly allows the loading of local resources, which allows for local files to be manipulated by a malicious web page when script execution is enabled. (CVE-2021-20066)
A flaw was found in python-pip in the way it handled Unicode separators in git references. A remote attacker could possibly use this issue to install a different revision on a repository. The highest threat from this vulnerability is to data integrity. This is fixed in python-pip version 21.1. (CVE-2021-3572)
Unbounded memory allocation in Google Guava 11.0 through 24.x before 24.1.1 allows remote attackers to conduct denial of service attacks against servers that depend on this library and deserialize attacker- provided data, because the AtomicDoubleArray class (when serialized with Java serialization) and the CompoundOrdering class (when serialized with GWT serialization) perform eager allocation without appropriate checks on what a client has sent and whether the data size is reasonable. (CVE-2018-10237)
Python Packaging Authority (PyPA) setuptools before 65.5.1 allows remote attackers to cause a denial of service via HTML in a crafted package or custom PackageIndex page. There is a Regular Expression Denial of Service (ReDoS) in package_index.py. (CVE-2022-40897)
A temp directory creation vulnerability exists in all versions of Guava, allowing an attacker with access to the machine to potentially access data in a temporary directory created by the Guava API com.google.common.io.Files.createTempDir(). By default, on unix-like systems, the created directory is world-readable (readable by an attacker with access to the system). The method in question has been marked @Deprecated in versions 30.0 and later and should not be used. For Android developers, we recommend choosing a temporary directory API provided by Android, such as context.getCacheDir(). For other Java developers, we recommend migrating to the Java 7 API java.nio.file.Files.createTempDirectory() which explicitly configures permissions of 700, or configuring the Java runtime’s java.io.tmpdir system property to point to a location whose permissions are appropriately configured. (CVE-2020-8908)
A path traversal vulnerability exists in filepath.Clean on Windows. On Windows, the filepath.Clean function could transform an invalid path such as a/…/c:/b into the valid path c:\b. This transformation of a relative (if invalid) path into an absolute path could enable a directory traversal attack. After fix, the filepath.Clean function transforms this path into the relative (but still invalid) path .\c:\b. (CVE-2022-41722)
This affects versions of the package http-cache-semantics before 4.1.1. The issue can be exploited via malicious request header values sent to a server, when that server reads the cache policy from the request using this library. (CVE-2022-25881)
jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of the altField
option of the Datepicker widget from untrusted sources may execute untrusted code. The issue is fixed in jQuery UI 1.13.0. Any string value passed to the altField
option is now treated as a CSS selector. A workaround is to not accept the value of the altField
option from untrusted sources.
(CVE-2021-41182)
jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of various *Text
options of the Datepicker widget from untrusted sources may execute untrusted code. The issue is fixed in jQuery UI 1.13.0. The values passed to various *Text
options are now always treated as pure text, not HTML. A workaround is to not accept the value of the *Text
options from untrusted sources. (CVE-2021-41183)
jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of the of
option of the .position()
util from untrusted sources may execute untrusted code. The issue is fixed in jQuery UI 1.13.0. Any string value passed to the of
option is now treated as a CSS selector. A workaround is to not accept the value of the of
option from untrusted sources. (CVE-2021-41184)
JSON5 is an extension to the popular JSON file format that aims to be easier to write and maintain by hand (e.g. for config files). The parse
method of the JSON5 library before and including versions 1.0.1 and 2.2.1 does not restrict parsing of keys named __proto__
, allowing specially crafted strings to pollute the prototype of the resulting object. This vulnerability pollutes the prototype of the object returned by JSON5.parse
and not the global Object prototype, which is the commonly understood definition of Prototype Pollution. However, polluting the prototype of a single object can have significant security impact for an application if the object is later used in trusted operations. This vulnerability could allow an attacker to set arbitrary and unexpected keys on the object returned from JSON5.parse
. The actual impact will depend on how applications utilize the returned object and how they filter unwanted keys, but could include denial of service, cross-site scripting, elevation of privilege, and in extreme cases, remote code execution. JSON5.parse
should restrict parsing of __proto__
keys when parsing JSON strings to objects. As a point of reference, the JSON.parse
method included in JavaScript ignores __proto__
keys. Simply changing JSON5.parse
to JSON.parse
in the examples above mitigates this vulnerability. This vulnerability is patched in json5 versions 1.0.2, 2.2.2, and later. (CVE-2022-46175)
In libarchive before 3.6.2, the software does not check for an error after calling calloc function that can return with a NULL pointer if the function fails, which leads to a resultant NULL pointer dereference.
NOTE: the discoverer cites this CWE-476 remark but third parties dispute the code-execution impact: In rare circumstances, when NULL is equivalent to the 0x0 memory address and privileged code can access it, then writing or reading memory is possible, which may lead to code execution. (CVE-2022-36227)
An improper link resolution flaw can occur while extracting an archive leading to changing modes, times, access control lists, and flags of a file outside of the archive. An attacker may provide a malicious archive to a victim user, who would trigger this flaw when trying to extract the archive. A local attacker may use this flaw to gain more privileges in a system. (CVE-2021-31566)
libarchive 3.4.1 through 3.5.1 has a use-after-free in copy_string (called from do_uncompress_block and process_block). (CVE-2021-36976)
There’s a flaw in lz4. An attacker who submits a crafted file to an application linked with lz4 may be able to trigger an integer overflow, leading to calling of memmove() on a negative size argument, causing an out-of-bounds write and/or a crash. The greatest impact of this flaw is to availability, with some potential impact to confidentiality and integrity as well. (CVE-2021-3520)
libpcre in PCRE before 8.44 allows an integer overflow via a large number after a (?C substring.
(CVE-2020-14155)
An out-of-bounds read was discovered in PCRE before 10.34 when the pattern \X is JIT compiled and used to match specially crafted subjects in non-UTF mode. Applications that use PCRE to parse untrusted input may be vulnerable to this flaw, which would allow an attacker to crash the application. The flaw occurs in do_extuni_no_utf in pcre2_jit_compile.c. (CVE-2019-20454)
libpcre in PCRE before 8.43 allows a subject buffer over-read in JIT when UTF is disabled, and \X or \R has more than one fixed quantifier, a related issue to CVE-2019-20454. (CVE-2019-20838)
SQLite 1.0.12 through 3.39.x before 3.39.2 sometimes allows an array-bounds overflow if billions of bytes are used in a string argument to a C API. (CVE-2022-35737)
The go command may execute arbitrary code at build time when using cgo. This may occur when running go get on a malicious module, or when running any other command which builds untrusted code. This is can by triggered by linker flags, specified via a #cgo LDFLAGS directive. The arguments for a number of flags which are non-optional are incorrectly considered optional, allowing disallowed flags to be smuggled through the LDFLAGS sanitization. This affects usage of both the gc and gccgo compilers. (CVE-2023-29404)
The go command may generate unexpected code at build time when using cgo. This may result in unexpected behavior when running a go program which uses cgo. This may occur when running an untrusted module which contains directories with newline characters in their names. Modules which are retrieved using the go command, i.e. via go get, are not affected (modules retrieved using GOPATH-mode, i.e. GO111MODULE=off, may be affected). (CVE-2023-29402)
Not all valid JavaScript whitespace characters are considered to be whitespace. Templates containing whitespace characters outside of the character set \t\n\f\r\u0020\u2028\u2029 in JavaScript contexts that also contain actions may not be properly sanitized during execution. (CVE-2023-24540)
The go command may execute arbitrary code at build time when using cgo. This may occur when running go get on a malicious module, or when running any other command which builds untrusted code. This is can by triggered by linker flags, specified via a #cgo LDFLAGS directive. Flags containing embedded spaces are mishandled, allowing disallowed flags to be smuggled through the LDFLAGS sanitization by including them in the argument of another flag. This only affects usage of the gccgo compiler. (CVE-2023-29405)
Templates containing actions in unquoted HTML attributes (e.g. attr={{.}}) executed with empty input can result in output with unexpected results when parsed due to HTML normalization rules. This may allow injection of arbitrary attributes into tags. (CVE-2023-29400)
Angle brackets (<>) are not considered dangerous characters when inserted into CSS contexts. Templates containing multiple actions separated by a ‘/’ character can result in unexpectedly closing the CSS context and allowing for injection of unexpected HTML, if executed with untrusted input. (CVE-2023-24539)
On Unix platforms, the Go runtime does not behave differently when a binary is run with the setuid/setgid bits. This can be dangerous in certain cases, such as when dumping memory state, or assuming the status of standard i/o file descriptors. If a setuid/setgid binary is executed with standard I/O file descriptors closed, opening any files can result in unexpected content being read or written with elevated privileges.
Similarly, if a setuid/setgid program is terminated, either via panic or signal, it may leak the contents of its registers. (CVE-2023-29403)
Note that Nessus has not tested for this issue but has instead relied only on the application’s self-reported version number.
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(194928);
script_version("1.3");
script_set_attribute(attribute:"plugin_modification_date", value:"2024/05/30");
script_cve_id(
"CVE-2013-7489",
"CVE-2018-10237",
"CVE-2018-20225",
"CVE-2019-20454",
"CVE-2019-20838",
"CVE-2020-14155",
"CVE-2020-28469",
"CVE-2020-28851",
"CVE-2020-29652",
"CVE-2020-8169",
"CVE-2020-8177",
"CVE-2020-8231",
"CVE-2020-8284",
"CVE-2020-8285",
"CVE-2020-8286",
"CVE-2020-8908",
"CVE-2021-20066",
"CVE-2021-22569",
"CVE-2021-22876",
"CVE-2021-22890",
"CVE-2021-22897",
"CVE-2021-22898",
"CVE-2021-22901",
"CVE-2021-22922",
"CVE-2021-22923",
"CVE-2021-22924",
"CVE-2021-22925",
"CVE-2021-22926",
"CVE-2021-22945",
"CVE-2021-22946",
"CVE-2021-22947",
"CVE-2021-23343",
"CVE-2021-23382",
"CVE-2021-27918",
"CVE-2021-27919",
"CVE-2021-29060",
"CVE-2021-29425",
"CVE-2021-29923",
"CVE-2021-31525",
"CVE-2021-31566",
"CVE-2021-33194",
"CVE-2021-33195",
"CVE-2021-33196",
"CVE-2021-33197",
"CVE-2021-33198",
"CVE-2021-34558",
"CVE-2021-3520",
"CVE-2021-3572",
"CVE-2021-36221",
"CVE-2021-36976",
"CVE-2021-3803",
"CVE-2021-38297",
"CVE-2021-38561",
"CVE-2021-39293",
"CVE-2021-41182",
"CVE-2021-41183",
"CVE-2021-41184",
"CVE-2021-41771",
"CVE-2021-41772",
"CVE-2021-43565",
"CVE-2021-44716",
"CVE-2021-44717",
"CVE-2022-1705",
"CVE-2022-1941",
"CVE-2022-1962",
"CVE-2022-22576",
"CVE-2022-2309",
"CVE-2022-23491",
"CVE-2022-23772",
"CVE-2022-23773",
"CVE-2022-23806",
"CVE-2022-24675",
"CVE-2022-24921",
"CVE-2022-24999",
"CVE-2022-25881",
"CVE-2022-27191",
"CVE-2022-27536",
"CVE-2022-27664",
"CVE-2022-27774",
"CVE-2022-27775",
"CVE-2022-27776",
"CVE-2022-27778",
"CVE-2022-27779",
"CVE-2022-27780",
"CVE-2022-27781",
"CVE-2022-27782",
"CVE-2022-28131",
"CVE-2022-28327",
"CVE-2022-2879",
"CVE-2022-2880",
"CVE-2022-29526",
"CVE-2022-29804",
"CVE-2022-30115",
"CVE-2022-30580",
"CVE-2022-30629",
"CVE-2022-30630",
"CVE-2022-30631",
"CVE-2022-30632",
"CVE-2022-30633",
"CVE-2022-30634",
"CVE-2022-30635",
"CVE-2022-31129",
"CVE-2022-3171",
"CVE-2022-32148",
"CVE-2022-32149",
"CVE-2022-32189",
"CVE-2022-32205",
"CVE-2022-32206",
"CVE-2022-32207",
"CVE-2022-32208",
"CVE-2022-32221",
"CVE-2022-33987",
"CVE-2022-3509",
"CVE-2022-3510",
"CVE-2022-3517",
"CVE-2022-35252",
"CVE-2022-35260",
"CVE-2022-35737",
"CVE-2022-36227",
"CVE-2022-37599",
"CVE-2022-37601",
"CVE-2022-37603",
"CVE-2022-38900",
"CVE-2022-40023",
"CVE-2022-40897",
"CVE-2022-40899",
"CVE-2022-41715",
"CVE-2022-41716",
"CVE-2022-41720",
"CVE-2022-41722",
"CVE-2022-42003",
"CVE-2022-42004",
"CVE-2022-42915",
"CVE-2022-42916",
"CVE-2022-43551",
"CVE-2022-43552",
"CVE-2022-46175",
"CVE-2023-23914",
"CVE-2023-23915",
"CVE-2023-23916",
"CVE-2023-24539",
"CVE-2023-24540",
"CVE-2023-27533",
"CVE-2023-27534",
"CVE-2023-27535",
"CVE-2023-27536",
"CVE-2023-27537",
"CVE-2023-27538",
"CVE-2023-29400",
"CVE-2023-29402",
"CVE-2023-29403",
"CVE-2023-29404",
"CVE-2023-29405"
);
script_xref(name:"CEA-ID", value:"CEA-2021-0025");
script_xref(name:"CEA-ID", value:"CEA-2021-0004");
script_xref(name:"CEA-ID", value:"CEA-2022-0026");
script_name(english:"Splunk Enterprise 8.2.0 < 8.2.12, 9.0.0 < 9.0.6, 9.1.0 < 9.1.1 (SVD-2023-0808)");
script_set_attribute(attribute:"synopsis", value:
"An application running on a remote web server host is affected by a vulnerability");
script_set_attribute(attribute:"description", value:
"The version of Splunk installed on the remote host is prior to tested version. It is, therefore, affected by a
vulnerability as referenced in the SVD-2023-0808 advisory.
- decode-uri-component 0.2.0 is vulnerable to Improper Input Validation resulting in DoS. (CVE-2022-38900)
- The got package before 12.1.0 (also fixed in 11.8.5) for Node.js allows a redirect to a UNIX socket.
(CVE-2022-33987)
- Prototype pollution vulnerability in function parseQuery in parseQuery.js in webpack loader-utils via the
name variable in parseQuery.js. This affects all versions prior to 1.4.1 and 2.0.3. (CVE-2022-37601)
- The package postcss before 8.2.13 are vulnerable to Regular Expression Denial of Service (ReDoS) via
getAnnotationURL() and loadAnnotation() in lib/previous-map.js. The vulnerable regexes are caused mainly
by the sub-pattern \/\*\s* sourceMappingURL=(.*). (CVE-2021-23382)
- A Regular Expression Denial of Service (ReDOS) vulnerability was discovered in Color-String version 1.5.5
and below which occurs when the application is provided and checks a crafted invalid HWB string.
(CVE-2021-29060)
- This affects the package glob-parent before 5.1.2. The enclosure regex used to check for strings ending in
enclosure containing path separator. (CVE-2020-28469)
- A Regular expression denial of service (ReDoS) flaw was found in Function interpolateName in
interpolateName.js in webpack loader-utils 2.0.0 via the resourcePath variable in interpolateName.js.
(CVE-2022-37599)
- A Regular expression denial of service (ReDoS) flaw was found in Function interpolateName in
interpolateName.js in webpack loader-utils 2.0.0 via the url variable in interpolateName.js.
(CVE-2022-37603)
- A vulnerability was found in the minimatch package. This flaw allows a Regular Expression Denial of
Service (ReDoS) when calling the braceExpand function with specific arguments, resulting in a Denial of
Service. (CVE-2022-3517)
- moment is a JavaScript date library for parsing, validating, manipulating, and formatting dates. Affected
versions of moment were found to use an inefficient parsing algorithm. Specifically using string-to-date
parsing in moment (more specifically rfc2822 parsing, which is tried by default) has quadratic (N^2)
complexity on specific inputs. Users may notice a noticeable slowdown is observed with inputs above 10k
characters. Users who pass user-provided strings without sanity length checks to moment constructor are
vulnerable to (Re)DoS attacks. The problem is patched in 2.29.4, the patch can be applied to all affected
versions with minimal tweaking. Users are advised to upgrade. Users unable to upgrade should consider
limiting date lengths accepted from user input. (CVE-2022-31129)
- nth-check is vulnerable to Inefficient Regular Expression Complexity (CVE-2021-3803)
- All versions of package path-parse are vulnerable to Regular Expression Denial of Service (ReDoS) via
splitDeviceRe, splitTailRe, and splitPathRe regular expressions. ReDoS exhibits polynomial worst-case time
complexity. (CVE-2021-23343)
- qs before 6.10.3, as used in Express before 4.17.3 and other products, allows attackers to cause a Node
process hang for an Express application because an __ proto__ key can be used. In many typical Express use
cases, an unauthenticated remote attacker can place the attack payload in the query string of the URL that
is used to visit the application, such as a[__proto__]=b&a[__proto__]&a[length]=100000000. The fix was
backported to qs 6.9.7, 6.8.3, 6.7.3, 6.6.1, 6.5.3, 6.4.1, 6.3.3, and 6.2.4 (and therefore Express 4.17.3,
which has deps: [email protected] in its release description, is not vulnerable). (CVE-2022-24999)
- An authentication bypass vulnerability exists in libcurl prior to v8.0.0 where it reuses a previously
established SSH connection despite the fact that an SSH option was modified, which should have prevented
reuse. libcurl maintains a pool of previously used connections to reuse them for subsequent transfers if
the configurations match. However, two SSH settings were omitted from the configuration check, allowing
them to match easily, potentially leading to the reuse of an inappropriate connection. (CVE-2023-27538)
- A double free vulnerability exists in libcurl <8.0.0 when sharing HSTS data between separate handles.
This sharing was introduced without considerations for do this sharing across separate threads but there
was no indication of this fact in the documentation. Due to missing mutexes or thread locks, two threads
sharing the same HSTS data could end up doing a double-free or use-after-free. (CVE-2023-27537)
- An authentication bypass vulnerability exists libcurl <8.0.0 in the connection reuse feature which can
reuse previously established connections with incorrect user permissions due to a failure to check for
changes in the CURLOPT_GSSAPI_DELEGATION option. This vulnerability affects krb5/kerberos/negotiate/GSSAPI
transfers and could potentially result in unauthorized access to sensitive information. The safest option
is to not reuse connections if the CURLOPT_GSSAPI_DELEGATION option has been changed. (CVE-2023-27536)
- An authentication bypass vulnerability exists in libcurl <8.0.0 in the FTP connection reuse feature that
can result in wrong credentials being used during subsequent transfers. Previously created connections are
kept in a connection pool for reuse if they match the current setup. However, certain FTP settings such as
CURLOPT_FTP_ACCOUNT, CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_FTP_SSL_CCC, and CURLOPT_USE_SSL were not
included in the configuration match checks, causing them to match too easily. This could lead to libcurl
using the wrong credentials when performing a transfer, potentially allowing unauthorized access to
sensitive information. (CVE-2023-27535)
- A path traversal vulnerability exists in curl <8.0.0 SFTP implementation causes the tilde (~) character to
be wrongly replaced when used as a prefix in the first path element, in addition to its intended use as
the first element to indicate a path relative to the user's home directory. Attackers can exploit this
flaw to bypass filtering or execute arbitrary code by crafting a path like /~2/foo while accessing a
server with a specific user. (CVE-2023-27534)
- A vulnerability in input validation exists in curl <8.0 during communication using the TELNET protocol may
allow an attacker to pass on maliciously crafted user name and telnet options during server negotiation.
The lack of proper input scrubbing allows an attacker to send content or perform option negotiation
without the application's intent. This vulnerability could be exploited if an application allows user
input, thereby enabling attackers to execute arbitrary code on the system. (CVE-2023-27533)
- An allocation of resources without limits or throttling vulnerability exists in curl <v7.88.0 based on the
chained HTTP compression algorithms, meaning that a server response can be compressed multiple times and
potentially with differentalgorithms. The number of acceptable links in this decompression chain
wascapped, but the cap was implemented on a per-header basis allowing a maliciousserver to insert a
virtually unlimited number of compression steps simply byusing many headers. The use of such a
decompression chain could result in a malloc bomb, making curl end up spending enormous amounts of
allocated heap memory, or trying to and returning out of memory errors. (CVE-2023-23916)
- A cleartext transmission of sensitive information vulnerability exists in curl <v7.88.0 that could cause
HSTS functionality to behave incorrectly when multiple URLs are requested in parallel. Using its HSTS
support, curl can be instructed to use HTTPS instead of using an insecure clear-text HTTP step even when
HTTP is provided in the URL. This HSTS mechanism would however surprisingly fail when multiple transfers
are done in parallel as the HSTS cache file gets overwritten by the most recentlycompleted transfer. A
later HTTP-only transfer to the earlier host name would then *not* get upgraded properly to HSTS.
(CVE-2023-23915)
- A cleartext transmission of sensitive information vulnerability exists in curl <v7.88.0 that could cause
HSTS functionality fail when multiple URLs are requested serially. Using its HSTS support, curl can be
instructed to use HTTPS instead of usingan insecure clear-text HTTP step even when HTTP is provided in the
URL. ThisHSTS mechanism would however surprisingly be ignored by subsequent transferswhen done on the same
command line because the state would not be properlycarried on. (CVE-2023-23914)
- A use after free vulnerability exists in curl <7.87.0. Curl can be asked to *tunnel* virtually all
protocols it supports through an HTTP proxy. HTTP proxies can (and often do) deny such tunnel operations.
When getting denied to tunnel the specific protocols SMB or TELNET, curl would use a heap-allocated struct
after it had been freed, in its transfer shutdown code path. (CVE-2022-43552)
- A vulnerability exists in curl <7.87.0 HSTS check that could be bypassed to trick it to keep using HTTP.
Using its HSTS support, curl can be instructed to use HTTPS instead of using an insecure clear-text HTTP
step even when HTTP is provided in the URL. However, the HSTS mechanism could be bypassed if the host name
in the given URL first uses IDN characters that get replaced to ASCII counterparts as part of the IDN
conversion. Like using the character UTF-8 U+3002 (IDEOGRAPHIC FULL STOP) instead of the common ASCII full
stop (U+002E) `.`. Then in a subsequent request, it does not detect the HSTS state and makes a clear text
transfer. Because it would store the info IDN encoded but look for it IDN decoded. (CVE-2022-43551)
- In curl before 7.86.0, the HSTS check could be bypassed to trick it into staying with HTTP. Using its HSTS
support, curl can be instructed to use HTTPS directly (instead of using an insecure cleartext HTTP step)
even when HTTP is provided in the URL. This mechanism could be bypassed if the host name in the given URL
uses IDN characters that get replaced with ASCII counterparts as part of the IDN conversion, e.g., using
the character UTF-8 U+3002 (IDEOGRAPHIC FULL STOP) instead of the common ASCII full stop of U+002E (.).
The earliest affected version is 7.77.0 2021-05-26. (CVE-2022-42916)
- curl before 7.86.0 has a double free. If curl is told to use an HTTP proxy for a transfer with a non-
HTTP(S) URL, it sets up the connection to the remote server by issuing a CONNECT request to the proxy, and
then tunnels the rest of the protocol through. An HTTP proxy might refuse this request (HTTP proxies often
only allow outgoing connections to specific port numbers, like 443 for HTTPS) and instead return a non-200
status code to the client. Due to flaws in the error/cleanup handling, this could trigger a double free in
curl if one of the following schemes were used in the URL for the transfer: dict, gopher, gophers, ldap,
ldaps, rtmp, rtmps, or telnet. The earliest affected version is 7.77.0. (CVE-2022-42915)
- curl can be told to parse a `.netrc` file for credentials. If that file endsin a line with 4095
consecutive non-white space letters and no newline, curlwould first read past the end of the stack-based
buffer, and if the readworks, write a zero byte beyond its boundary.This will in most cases cause a
segfault or similar, but circumstances might also cause different outcomes.If a malicious user can provide
a custom netrc file to an application or otherwise affect its contents, this flaw could be used as denial-
of-service. (CVE-2022-35260)
- When doing HTTP(S) transfers, libcurl might erroneously use the read callback (`CURLOPT_READFUNCTION`) to
ask for data to send, even when the `CURLOPT_POSTFIELDS` option has been set, if the same handle
previously was used to issue a `PUT` request which used that callback. This flaw may surprise the
application and cause it to misbehave and either send off the wrong data or use memory after free or
similar in the subsequent `POST` request. The problem exists in the logic for a reused handle when it is
changed from a PUT to a POST. (CVE-2022-32221)
- When curl is used to retrieve and parse cookies from a HTTP(S) server, itaccepts cookies using control
codes that when later are sent back to a HTTPserver might make the server return 400 responses.
Effectively allowing asister site to deny service to all siblings. (CVE-2022-35252)
- When curl < 7.84.0 does FTP transfers secured by krb5, it handles message verification failures wrongly.
This flaw makes it possible for a Man-In-The-Middle attack to go unnoticed and even allows it to inject
data to the client. (CVE-2022-32208)
- When curl < 7.84.0 saves cookies, alt-svc and hsts data to local files, it makes the operation atomic by
finalizing the operation with a rename from a temporary name to the final target file name.In that rename
operation, it might accidentally *widen* the permissions for the target file, leaving the updated file
accessible to more users than intended. (CVE-2022-32207)
- curl < 7.84.0 supports chained HTTP compression algorithms, meaning that a serverresponse can be
compressed multiple times and potentially with different algorithms. The number of acceptable links in
this decompression chain was unbounded, allowing a malicious server to insert a virtually unlimited
number of compression steps.The use of such a decompression chain could result in a malloc bomb,
makingcurl end up spending enormous amounts of allocated heap memory, or trying toand returning out of
memory errors. (CVE-2022-32206)
- A malicious server can serve excessive amounts of `Set-Cookie:` headers in a HTTP response to curl and
curl < 7.84.0 stores all of them. A sufficiently large amount of (big) cookies make subsequent HTTP
requests to this, or other servers to which the cookies match, create requests that become larger than the
threshold that curl uses internally to avoid sending crazy large requests (1048576 bytes) and instead
returns an error.This denial state might remain for as long as the same cookies are kept, match and
haven't expired. Due to cookie matching rules, a server on `foo.example.com` can set cookies that also
would match for `bar.example.com`, making it it possible for a sister server to effectively cause a
denial of service for a sibling site on the same second level domain using this method. (CVE-2022-32205)
- Using its HSTS support, curl can be instructed to use HTTPS directly insteadof using an insecure clear-
text HTTP step even when HTTP is provided in theURL. This mechanism could be bypassed if the host name in
the given URL used atrailing dot while not using one when it built the HSTS cache. Or the otherway around
- by having the trailing dot in the HSTS cache and *not* using thetrailing dot in the URL.
(CVE-2022-30115)
- libcurl would reuse a previously created connection even when a TLS or SSHrelated option had been changed
that should have prohibited reuse.libcurl keeps previously used connections in a connection pool for
subsequenttransfers to reuse if one of them matches the setup. However, several TLS andSSH settings were
left out from the configuration match checks, making themmatch too easily. (CVE-2022-27782)
- libcurl provides the `CURLOPT_CERTINFO` option to allow applications torequest details to be returned
about a server's certificate chain.Due to an erroneous function, a malicious server could make libcurl
built withNSS get stuck in a never-ending busy-loop when trying to retrieve thatinformation.
(CVE-2022-27781)
- The curl URL parser wrongly accepts percent-encoded URL separators like '/'when decoding the host name
part of a URL, making it a *different* URL usingthe wrong host name when it is later retrieved.For
example, a URL like `http://example.com%2F127.0.0.1/`, would be allowed bythe parser and get transposed
into `http://example.com/127.0.0.1/`. This flawcan be used to circumvent filters, checks and more.
(CVE-2022-27780)
- libcurl wrongly allows cookies to be set for Top Level Domains (TLDs) if thehost name is provided with a
trailing dot.curl can be told to receive and send cookies. curl's cookie engine can bebuilt with or
without [Public Suffix List](https://publicsuffix.org/)awareness. If PSL support not provided, a more
rudimentary check exists to atleast prevent cookies from being set on TLDs. This check was broken if
thehost name in the URL uses a trailing dot.This can allow arbitrary sites to set cookies that then would
get sent to adifferent and unrelated site or domain. (CVE-2022-27779)
- A use of incorrectly resolved name vulnerability fixed in 7.83.1 might remove the wrong file when `--no-
clobber` is used together with `--remove-on-error`. (CVE-2022-27778)
- A insufficiently protected credentials vulnerability in fixed in curl 7.83.0 might leak authentication or
cookie header data on HTTP redirects to the same host but another port number. (CVE-2022-27776)
- An information disclosure vulnerability exists in curl 7.65.0 to 7.82.0 are vulnerable that by using an
IPv6 address that was in the connection pool but with a different zone id it could reuse a connection
instead. (CVE-2022-27775)
- An insufficiently protected credentials vulnerability exists in curl 4.9 to and include curl 7.82.0 are
affected that could allow an attacker to extract credentials when follows HTTP(S) redirects is used with
authentication could leak credentials to other services that exist on different protocols or port numbers.
(CVE-2022-27774)
- An improper authentication vulnerability exists in curl 7.33.0 to and including 7.82.0 which might allow
reuse OAUTH2-authenticated connections without properly making sure that the connection was authenticated
with the same credentials as set for this transfer. This affects SASL-enabled protocols: SMPTP(S),
IMAP(S), POP3(S) and LDAP(S) (openldap only). (CVE-2022-22576)
- When curl >= 7.20.0 and <= 7.78.0 connects to an IMAP or POP3 server to retrieve data using STARTTLS to
upgrade to TLS security, the server can respond and send back multiple responses at once that curl caches.
curl would then upgrade to TLS but not flush the in-queue of cached responses but instead continue using
and trustingthe responses it got *before* the TLS handshake as if they were authenticated.Using this flaw,
it allows a Man-In-The-Middle attacker to first inject the fake responses, then pass-through the TLS
traffic from the legitimate server and trick curl into sending data back to the user thinking the
attacker's injected data comes from the TLS-protected server. (CVE-2021-22947)
- A user can tell curl >= 7.20.0 and <= 7.78.0 to require a successful upgrade to TLS when speaking to an
IMAP, POP3 or FTP server (`--ssl-reqd` on the command line or`CURLOPT_USE_SSL` set to `CURLUSESSL_CONTROL`
or `CURLUSESSL_ALL` withlibcurl). This requirement could be bypassed if the server would return a properly
crafted but perfectly legitimate response.This flaw would then make curl silently continue its operations
**withoutTLS** contrary to the instructions and expectations, exposing possibly sensitive data in clear
text over the network. (CVE-2021-22946)
- When sending data to an MQTT server, libcurl <= 7.73.0 and 7.78.0 could in some circumstances erroneously
keep a pointer to an already freed memory area and both use that again in a subsequent call to send data
and also free it *again*. (CVE-2021-22945)
- libcurl-using applications can ask for a specific client certificate to be used in a transfer. This is
done with the `CURLOPT_SSLCERT` option (`--cert` with the command line tool).When libcurl is built to use
the macOS native TLS library Secure Transport, an application can ask for the client certificate by name
or with a file name - using the same option. If the name exists as a file, it will be used instead of by
name.If the appliction runs with a current working directory that is writable by other users (like
`/tmp`), a malicious user can create a file name with the same name as the app wants to use by name, and
thereby trick the application to use the file based cert instead of the one referred to by name making
libcurl send the wrong client certificate in the TLS connection handshake. (CVE-2021-22926)
- curl supports the `-t` command line option, known as `CURLOPT_TELNETOPTIONS`in libcurl. This rarely used
option is used to send variable=content pairs toTELNET servers.Due to flaw in the option parser for
sending `NEW_ENV` variables, libcurlcould be made to pass on uninitialized data from a stack based buffer
to theserver. Therefore potentially revealing sensitive internal information to theserver using a clear-
text network protocol.This could happen because curl did not call and use sscanf() correctly whenparsing
the string provided by the application. (CVE-2021-22925)
- libcurl keeps previously used connections in a connection pool for subsequenttransfers to reuse, if one of
them matches the setup.Due to errors in the logic, the config matching function did not take 'issuercert'
into account and it compared the involved paths *case insensitively*,which could lead to libcurl reusing
wrong connections.File paths are, or can be, case sensitive on many systems but not all, and caneven vary
depending on used file systems.The comparison also didn't include the 'issuer cert' which a transfer can
setto qualify how to verify the server certificate. (CVE-2021-22924)
- When curl is instructed to get content using the metalink feature, and a user name and password are used
to download the metalink XML file, those same credentials are then subsequently passed on to each of the
servers from which curl will download or try to download the contents from. Often contrary to the user's
expectations and intentions and without telling the user it happened. (CVE-2021-22923)
- When curl is instructed to download content using the metalink feature, thecontents is verified against a
hash provided in the metalink XML file.The metalink XML file points out to the client how to get the same
contentfrom a set of different URLs, potentially hosted by different servers and theclient can then
download the file from one or several of them. In a serial orparallel manner.If one of the servers hosting
the contents has been breached and the contentsof the specific file on that server is replaced with a
modified payload, curlshould detect this when the hash of the file mismatches after a completeddownload.
It should remove the contents and instead try getting the contentsfrom another URL. This is not done, and
instead such a hash mismatch is onlymentioned in text and the potentially malicious content is kept in the
file ondisk. (CVE-2021-22922)
- curl 7.75.0 through 7.76.1 suffers from a use-after-free vulnerability resulting in already freed memory
being used when a TLS 1.3 session ticket arrives over a connection. A malicious server can use this in
rare unfortunate circumstances to potentially reach remote code execution in the client. When libcurl at
run-time sets up support for TLS 1.3 session tickets on a connection using OpenSSL, it stores pointers to
the transfer in-memory object for later retrieval when a session ticket arrives. If the connection is used
by multiple transfers (like with a reused HTTP/1.1 connection or multiplexed HTTP/2 connection) that first
transfer object might be freed before the new session is established on that connection and then the
function will access a memory buffer that might be freed. When using that memory, libcurl might even call
a function pointer in the object, making it possible for a remote code execution if the server could
somehow manage to get crafted memory content into the correct place in memory. (CVE-2021-22901)
- curl 7.7 through 7.76.1 suffers from an information disclosure when the `-t` command line option, known as
`CURLOPT_TELNETOPTIONS` in libcurl, is used to send variable=content pairs to TELNET servers. Due to a
flaw in the option parser for sending NEW_ENV variables, libcurl could be made to pass on uninitialized
data from a stack based buffer to the server, resulting in potentially revealing sensitive internal
information to the server using a clear-text network protocol. (CVE-2021-22898)
- curl 7.61.0 through 7.76.1 suffers from exposure of data element to wrong session due to a mistake in the
code for CURLOPT_SSL_CIPHER_LIST when libcurl is built to use the Schannel TLS library. The selected
cipher set was stored in a single static variable in the library, which has the surprising side-effect
that if an application sets up multiple concurrent transfers, the last one that sets the ciphers will
accidentally control the set used by all transfers. In a worst-case scenario, this weakens transport
security significantly. (CVE-2021-22897)
- curl 7.63.0 to and including 7.75.0 includes vulnerability that allows a malicious HTTPS proxy to MITM a
connection due to bad handling of TLS 1.3 session tickets. When using a HTTPS proxy and TLS 1.3, libcurl
can confuse session tickets arriving from the HTTPS proxy but work as if they arrived from the remote
server and then wrongly short-cut the host handshake. When confusing the tickets, a HTTPS proxy can
trick libcurl to use the wrong session ticket resume for the host and thereby circumvent the server TLS
certificate check and make a MITM attack to be possible to perform unnoticed. Note that such a malicious
HTTPS proxy needs to provide a certificate that curl will accept for the MITMed server for an attack to
work - unless curl has been told to ignore the server certificate check. (CVE-2021-22890)
- curl 7.1.1 to and including 7.75.0 is vulnerable to an Exposure of Private Personal Information to an
Unauthorized Actor by leaking credentials in the HTTP Referer: header. libcurl does not strip off user
credentials from the URL when automatically populating the Referer: HTTP request header field in outgoing
HTTP requests, and therefore risks leaking sensitive data to the server that is the target of the second
HTTP request. (CVE-2021-22876)
- curl 7.41.0 through 7.73.0 is vulnerable to an improper check for certificate revocation due to
insufficient verification of the OCSP response. (CVE-2020-8286)
- curl 7.21.0 to and including 7.73.0 is vulnerable to uncontrolled recursion due to a stack overflow issue
in FTP wildcard match parsing. (CVE-2020-8285)
- A malicious server can use the FTP PASV response to trick curl 7.73.0 and earlier into connecting back to
a given IP address and port, and this way potentially make curl extract information about services that
are otherwise private and not disclosed, for example doing port scanning and service banner extractions.
(CVE-2020-8284)
- Due to use of a dangling pointer, libcurl 7.29.0 through 7.71.1 can use the wrong connection when sending
data. (CVE-2020-8231)
- curl 7.20.0 through 7.70.0 is vulnerable to improper restriction of names for files and other resources
that can lead too overwriting a local file when the -J flag is used. (CVE-2020-8177)
- curl 7.62.0 through 7.70.0 is vulnerable to an information disclosure vulnerability that can lead to a
partial password being leaked over the network and to the DNS server(s). (CVE-2020-8169)
- Incorrect conversion of certain invalid paths to valid, absolute paths in Clean in path/filepath before Go
1.17.11 and Go 1.18.3 on Windows allows potential directory traversal attack. (CVE-2022-29804)
- A too-short encoded message can cause a panic in Float.GobDecode and Rat GobDecode in math/big in Go
before 1.17.13 and 1.18.5, potentially allowing a denial of service. (CVE-2022-32189)
- Improper exposure of client IP addresses in net/http before Go 1.17.12 and Go 1.18.4 can be triggered by
calling httputil.ReverseProxy.ServeHTTP with a Request.Header map containing a nil value for the
X-Forwarded-For header, which causes ReverseProxy to set the client IP as the value of the X-Forwarded-For
header. (CVE-2022-32148)
- Uncontrolled recursion in Decoder.Decode in encoding/gob before Go 1.17.12 and Go 1.18.4 allows an
attacker to cause a panic due to stack exhaustion via a message which contains deeply nested structures.
(CVE-2022-30635)
- Uncontrolled recursion in Unmarshal in encoding/xml before Go 1.17.12 and Go 1.18.4 allows an attacker to
cause a panic due to stack exhaustion via unmarshalling an XML document into a Go struct which has a
nested field that uses the 'any' field tag. (CVE-2022-30633)
- Uncontrolled recursion in Glob in path/filepath before Go 1.17.12 and Go 1.18.4 allows an attacker to
cause a panic due to stack exhaustion via a path containing a large number of path separators.
(CVE-2022-30632)
- Uncontrolled recursion in Reader.Read in compress/gzip before Go 1.17.12 and Go 1.18.4 allows an attacker
to cause a panic due to stack exhaustion via an archive containing a large number of concatenated 0-length
compressed files. (CVE-2022-30631)
- Uncontrolled recursion in Glob in io/fs before Go 1.17.12 and Go 1.18.4 allows an attacker to cause a
panic due to stack exhaustion via a path which contains a large number of path separators.
(CVE-2022-30630)
- Non-random values for ticket_age_add in session tickets in crypto/tls before Go 1.17.11 and Go 1.18.3
allow an attacker that can observe TLS handshakes to correlate successive connections by comparing ticket
ages during session resumption. (CVE-2022-30629)
- Code injection in Cmd.Start in os/exec before Go 1.17.11 and Go 1.18.3 allows execution of any binaries in
the working directory named either ..com or ..exe by calling Cmd.Run, Cmd.Start, Cmd.Output, or
Cmd.CombinedOutput when Cmd.Path is unset. (CVE-2022-30580)
- Uncontrolled recursion in Decoder.Skip in encoding/xml before Go 1.17.12 and Go 1.18.4 allows an attacker
to cause a panic due to stack exhaustion via a deeply nested XML document. (CVE-2022-28131)
- Uncontrolled recursion in the Parse functions in go/parser before Go 1.17.12 and Go 1.18.4 allow an
attacker to cause a panic due to stack exhaustion via deeply nested types or declarations. (CVE-2022-1962)
- Acceptance of some invalid Transfer-Encoding headers in the HTTP/1 client in net/http before Go 1.17.12
and Go 1.18.4 allows HTTP request smuggling if combined with an intermediate server that also improperly
fails to reject the header as invalid. (CVE-2022-1705)
- Infinite loop in Read in crypto/rand before Go 1.17.11 and Go 1.18.3 on Windows allows attacker to cause
an indefinite hang by passing a buffer larger than 1 << 32 - 1 bytes. (CVE-2022-30634)
- Go before 1.17.10 and 1.18.x before 1.18.2 has Incorrect Privilege Assignment. When called with a non-zero
flags parameter, the Faccessat function could incorrectly report that a file is accessible.
(CVE-2022-29526)
- The generic P-256 feature in crypto/elliptic in Go before 1.17.9 and 1.18.x before 1.18.1 allows a panic
via long scalar input. (CVE-2022-28327)
- encoding/pem in Go before 1.17.9 and 1.18.x before 1.18.1 has a Decode stack overflow via a large amount
of PEM data. (CVE-2022-24675)
- The golang.org/x/crypto/ssh package before 0.0.0-20220314234659-1baeb1ce4c0b for Go allows an attacker to
crash a server in certain circumstances involving AddHostKey. (CVE-2022-27191)
- regexp.Compile in Go before 1.16.15 and 1.17.x before 1.17.8 allows stack exhaustion via a deeply nested
expression. (CVE-2022-24921)
- Curve.IsOnCurve in crypto/elliptic in Go before 1.16.14 and 1.17.x before 1.17.7 can incorrectly return
true in situations with a big.Int value that is not a valid field element. (CVE-2022-23806)
- cmd/go in Go before 1.16.14 and 1.17.x before 1.17.7 can misinterpret branch names that falsely appear to
be version tags. This can lead to incorrect access control if an actor is supposed to be able to create
branches but not tags. (CVE-2022-23773)
- Rat.SetString in math/big in Go before 1.16.14 and 1.17.x before 1.17.7 has an overflow that can lead to
Uncontrolled Memory Consumption. (CVE-2022-23772)
- In archive/zip in Go before 1.16.8 and 1.17.x before 1.17.1, a crafted archive header (falsely designating
that many files are present) can cause a NewReader or OpenReader panic. NOTE: this issue exists because of
an incomplete fix for CVE-2021-33196. (CVE-2021-39293)
- net/http in Go before 1.16.12 and 1.17.x before 1.17.5 allows uncontrolled memory consumption in the
header canonicalization cache via HTTP/2 requests. (CVE-2021-44716)
- Go before 1.16.12 and 1.17.x before 1.17.5 on UNIX allows write operations to an unintended file or
unintended network connection as a consequence of erroneous closing of file descriptor 0 after file-
descriptor exhaustion. (CVE-2021-44717)
- Go before 1.16.10 and 1.17.x before 1.17.3 allows an archive/zip Reader.Open panic via a crafted ZIP
archive containing an invalid name or an empty filename field. (CVE-2021-41772)
- ImportedSymbols in debug/macho (for Open or OpenFat) in Go before 1.16.10 and 1.17.x before 1.17.3
Accesses a Memory Location After the End of a Buffer, aka an out-of-bounds slice situation.
(CVE-2021-41771)
- Go before 1.16.9 and 1.17.x before 1.17.2 has a Buffer Overflow via large arguments in a function
invocation from a WASM module, when GOARCH=wasm GOOS=js is used. (CVE-2021-38297)
- Go before 1.15.15 and 1.16.x before 1.16.7 has a race condition that can lead to a net/http/httputil
ReverseProxy panic upon an ErrAbortHandler abort. (CVE-2021-36221)
- Go before 1.17 does not properly consider extraneous zero characters at the beginning of an IP address
octet, which (in some situations) allows attackers to bypass access control that is based on IP addresses,
because of unexpected octal interpretation. This affects net.ParseIP and net.ParseCIDR. (CVE-2021-29923)
- In Go before 1.15.13 and 1.16.x before 1.16.5, there can be a panic for a large exponent to the
math/big.Rat SetString or UnmarshalText method. (CVE-2021-33198)
- In Go before 1.15.13 and 1.16.x before 1.16.5, some configurations of ReverseProxy (from
net/http/httputil) result in a situation where an attacker is able to drop arbitrary headers.
(CVE-2021-33197)
- In archive/zip in Go before 1.15.13 and 1.16.x before 1.16.5, a crafted file count (in an archive's
header) can cause a NewReader or OpenReader panic. (CVE-2021-33196)
- Go before 1.15.13 and 1.16.x before 1.16.5 has functions for DNS lookups that do not validate replies from
DNS servers, and thus a return value may contain an unsafe injection (e.g., XSS) that does not conform to
the RFC1035 format. (CVE-2021-33195)
- The crypto/tls package of Go through 1.16.5 does not properly assert that the type of public key in an
X.509 certificate matches the expected type when doing a RSA based key exchange, allowing a malicious TLS
server to cause a TLS client to panic. (CVE-2021-34558)
- net/http in Go before 1.15.12 and 1.16.x before 1.16.4 allows remote attackers to cause a denial of
service (panic) via a large header to ReadRequest or ReadResponse. Server, Transport, and Client can each
be affected in some configurations. (CVE-2021-31525)
- golang.org/x/net before v0.0.0-20210520170846-37e1c6afe023 allows attackers to cause a denial of service
(infinite loop) via crafted ParseFragment input. (CVE-2021-33194)
- archive/zip in Go 1.16.x before 1.16.1 allows attackers to cause a denial of service (panic) upon
attempted use of the Reader.Open API for a ZIP archive in which ../ occurs at the beginning of any
filename. (CVE-2021-27919)
- encoding/xml in Go before 1.15.9 and 1.16.x before 1.16.1 has an infinite loop if a custom TokenReader
(for xml.NewTokenDecoder) returns EOF in the middle of an element. This can occur in the Decode,
DecodeElement, or Skip method. (CVE-2021-27918)
- Certificate.Verify in crypto/x509 in Go 1.18.x before 1.18.1 can be caused to panic on macOS when
presented with certain malformed certificates. This allows a remote TLS server to cause a TLS client to
panic. (CVE-2022-27536)
- An attacker may cause a denial of service by crafting an Accept-Language header which ParseAcceptLanguage
will take significant time to parse. (CVE-2022-32149)
- Sqlalchemy mako before 1.2.2 is vulnerable to Regular expression Denial of Service when using the Lexer
class to parse. This also affects babelplugin and linguaplugin. (CVE-2022-40023)
- The x/crypto/ssh package before 0.0.0-20211202192323-5770296d904e of golang.org/x/crypto allows an
attacker to panic an SSH server. (CVE-2021-43565)
- golang.org/x/text/language in golang.org/x/text before 0.3.7 can panic with an out-of-bounds read during
BCP 47 language tag parsing. Index calculation is mishandled. If parsing untrusted user input, this can be
used as a vector for a denial-of-service attack. (CVE-2021-38561)
- Due to unsanitized NUL values, attackers may be able to maliciously set environment variables on Windows.
In syscall.StartProcess and os/exec.Cmd, invalid environment variable values containing NUL values are not
properly checked for. A malicious environment variable value can exploit this behavior to set a value for
a different environment variable. For example, the environment variable string A=B\x00C=D sets the
variables A=B and C=D. (CVE-2022-41716)
- An issue discovered in Python Charmers Future 0.18.2 and earlier allows remote attackers to cause a denial
of service via crafted Set-Cookie header from malicious web server. (CVE-2022-40899)
- In FasterXML jackson-databind before versions 2.13.4.1 and 2.12.17.1, resource exhaustion can occur
because of a lack of a check in primitive value deserializers to avoid deep wrapper array nesting, when
the UNWRAP_SINGLE_VALUE_ARRAYS feature is enabled. (CVE-2022-42003)
- A nil pointer dereference in the golang.org/x/crypto/ssh component through
v0.0.0-20201203163018-be400aefbc4c for Go allows remote attackers to cause a denial of service against SSH
servers. (CVE-2020-29652)
- Programs which compile regular expressions from untrusted sources may be vulnerable to memory exhaustion
or denial of service. The parsed regexp representation is linear in the size of the input, but in some
cases the constant factor can be as high as 40,000, making relatively small regexps consume much larger
amounts of memory. After fix, each regexp being parsed is limited to a 256 MB memory footprint. Regular
expressions whose representation would use more space than that are rejected. Normal use of regular
expressions is unaffected. (CVE-2022-41715)
- On Windows, restricted files can be accessed via os.DirFS and http.Dir. The os.DirFS function and http.Dir
type provide access to a tree of files rooted at a given directory. These functions permit access to
Windows device files under that root. For example, os.DirFS(C:/tmp).Open(COM1) opens the COM1 device.
Both os.DirFS and http.Dir only provide read-only filesystem access. In addition, on Windows, an os.DirFS
for the directory (the root of the current drive) can permit a maliciously crafted path to escape from the
drive and access any path on the system. With fix applied, the behavior of os.DirFS() has changed.
Previously, an empty root was treated equivalently to /, so os.DirFS().Open(tmp) would open the path
/tmp. This now returns an error. (CVE-2022-41720)
- A parsing issue similar to CVE-2022-3171, but with Message-Type Extensions in protobuf-java core and lite
versions prior to 3.21.7, 3.20.3, 3.19.6 and 3.16.3 can lead to a denial of service attack. Inputs
containing multiple instances of non-repeated embedded messages with repeated or unknown fields causes
objects to be converted back-n-forth between mutable and immutable forms, resulting in potentially long
garbage collection pauses. We recommend updating to the versions mentioned above. (CVE-2022-3510)
- In net/http in Go before 1.18.6 and 1.19.x before 1.19.1, attackers can cause a denial of service because
an HTTP/2 connection can hang during closing if shutdown were preempted by a fatal error. (CVE-2022-27664)
- Certifi is a curated collection of Root Certificates for validating the trustworthiness of SSL
certificates while verifying the identity of TLS hosts. Certifi 2022.12.07 removes root certificates from
TrustCor from the root store. These are in the process of being removed from Mozilla's trust store.
TrustCor's root certificates are being removed pursuant to an investigation prompted by media reporting
that TrustCor's ownership also operated a business that produced spyware. Conclusions of Mozilla's
investigation can be found in the linked google group discussion. (CVE-2022-23491)
- Requests forwarded by ReverseProxy include the raw query parameters from the inbound request, including
unparsable parameters rejected by net/http. This could permit query parameter smuggling when a Go proxy
forwards a parameter with an unparsable value. After fix, ReverseProxy sanitizes the query parameters in
the forwarded query when the outbound request's Form field is set after the ReverseProxy. Director
function returns, indicating that the proxy has parsed the query parameters. Proxies which do not parse
query parameters continue to forward the original query parameters unchanged. (CVE-2022-2880)
- A parsing issue similar to CVE-2022-3171, but with textformat in protobuf-java core and lite versions
prior to 3.21.7, 3.20.3, 3.19.6 and 3.16.3 can lead to a denial of service attack. Inputs containing
multiple instances of non-repeated embedded messages with repeated or unknown fields causes objects to be
converted back-n-forth between mutable and immutable forms, resulting in potentially long garbage
collection pauses. We recommend updating to the versions mentioned above. (CVE-2022-3509)
- NULL Pointer Dereference allows attackers to cause a denial of service (or application crash). This only
applies when lxml is used together with libxml2 2.9.10 through 2.9.14. libxml2 2.9.9 and earlier are not
affected. It allows triggering crashes through forged input data, given a vulnerable code sequence in the
application. The vulnerability is caused by the iterwalk function (also used by the canonicalize
function). Such code shouldn't be in wide-spread use, given that parsing + iterwalk would usually be
replaced with the more efficient iterparse function. However, an XML converter that serialises to C14N
would also be vulnerable, for example, and there are legitimate use cases for this code sequence. If
untrusted input is received (also remotely) and processed via iterwalk function, a crash can be triggered.
(CVE-2022-2309)
- An issue was discovered in pip (all versions) because it installs the version with the highest version
number, even if the user had intended to obtain a private package from a private index. This only affects
use of the --extra-index-url option, and exploitation requires that the package does not already exist in
the public index (and thus the attacker can put the package there with an arbitrary version number). NOTE:
it has been reported that this is intended functionality and the user is responsible for using --extra-
index-url securely (CVE-2018-20225)
- In x/text in Go 1.15.4, an index out of range panic occurs in language.ParseAcceptLanguage while parsing
the -u- extension. (x/text/language is supposed to be able to parse an HTTP Accept-Language header.)
(CVE-2020-28851)
- In FasterXML jackson-databind before 2.13.4, resource exhaustion can occur because of a lack of a check in
BeanDeserializer._deserializeFromArray to prevent use of deeply nested arrays. An application is
vulnerable only with certain customized choices for deserialization. (CVE-2022-42004)
- A parsing vulnerability for the MessageSet type in the ProtocolBuffers versions prior to and including
3.16.1, 3.17.3, 3.18.2, 3.19.4, 3.20.1 and 3.21.5 for protobuf-cpp, and versions prior to and including
3.16.1, 3.17.3, 3.18.2, 3.19.4, 3.20.1 and 4.21.5 for protobuf-python can lead to out of memory failures.
A specially crafted message with multiple key-value per elements creates parsing issues, and can lead to a
Denial of Service against services receiving unsanitized input. We recommend upgrading to versions 3.18.3,
3.19.5, 3.20.2, 3.21.6 for protobuf-cpp and 3.18.3, 3.19.5, 3.20.2, 4.21.6 for protobuf-python. Versions
for 3.16 and 3.17 are no longer updated. (CVE-2022-1941)
- A parsing issue with binary data in protobuf-java core and lite versions prior to 3.21.7, 3.20.3, 3.19.6
and 3.16.3 can lead to a denial of service attack. Inputs containing multiple instances of non-repeated
embedded messages with repeated or unknown fields causes objects to be converted back-n-forth between
mutable and immutable forms, resulting in potentially long garbage collection pauses. We recommend
updating to the versions mentioned above. (CVE-2022-3171)
- Reader.Read does not set a limit on the maximum size of file headers. A maliciously crafted archive could
cause Read to allocate unbounded amounts of memory, potentially causing resource exhaustion or panics.
After fix, Reader.Read limits the maximum size of header blocks to 1 MiB. (CVE-2022-2879)
- An issue in protobuf-java allowed the interleaving of com.google.protobuf.UnknownFieldSet fields in such a
way that would be processed out of order. A small malicious payload can occupy the parser for several
minutes by creating large numbers of short-lived objects that cause frequent, repeated pauses. We
recommend upgrading libraries beyond the vulnerable versions. (CVE-2021-22569)
- In Apache Commons IO before 2.7, When invoking the method FileNameUtils.normalize with an improper input
string, like //../foo, or \\..\foo, the result would be the same value, thus possibly providing access
to files in the parent directory, but not further above (thus limited path traversal), if the calling
code would use the result to construct a path value. (CVE-2021-29425)
- The Beaker library through 1.11.0 for Python is affected by deserialization of untrusted data, which could
lead to arbitrary code execution. (CVE-2013-7489)
- JSDom improperly allows the loading of local resources, which allows for local files to be manipulated by
a malicious web page when script execution is enabled. (CVE-2021-20066)
- A flaw was found in python-pip in the way it handled Unicode separators in git references. A remote
attacker could possibly use this issue to install a different revision on a repository. The highest threat
from this vulnerability is to data integrity. This is fixed in python-pip version 21.1. (CVE-2021-3572)
- Unbounded memory allocation in Google Guava 11.0 through 24.x before 24.1.1 allows remote attackers to
conduct denial of service attacks against servers that depend on this library and deserialize attacker-
provided data, because the AtomicDoubleArray class (when serialized with Java serialization) and the
CompoundOrdering class (when serialized with GWT serialization) perform eager allocation without
appropriate checks on what a client has sent and whether the data size is reasonable. (CVE-2018-10237)
- Python Packaging Authority (PyPA) setuptools before 65.5.1 allows remote attackers to cause a denial of
service via HTML in a crafted package or custom PackageIndex page. There is a Regular Expression Denial of
Service (ReDoS) in package_index.py. (CVE-2022-40897)
- A temp directory creation vulnerability exists in all versions of Guava, allowing an attacker with access
to the machine to potentially access data in a temporary directory created by the Guava API
com.google.common.io.Files.createTempDir(). By default, on unix-like systems, the created directory is
world-readable (readable by an attacker with access to the system). The method in question has been marked
@Deprecated in versions 30.0 and later and should not be used. For Android developers, we recommend
choosing a temporary directory API provided by Android, such as context.getCacheDir(). For other Java
developers, we recommend migrating to the Java 7 API java.nio.file.Files.createTempDirectory() which
explicitly configures permissions of 700, or configuring the Java runtime's java.io.tmpdir system property
to point to a location whose permissions are appropriately configured. (CVE-2020-8908)
- A path traversal vulnerability exists in filepath.Clean on Windows. On Windows, the filepath.Clean
function could transform an invalid path such as a/../c:/b into the valid path c:\b. This
transformation of a relative (if invalid) path into an absolute path could enable a directory traversal
attack. After fix, the filepath.Clean function transforms this path into the relative (but still invalid)
path .\c:\b. (CVE-2022-41722)
- This affects versions of the package http-cache-semantics before 4.1.1. The issue can be exploited via
malicious request header values sent to a server, when that server reads the cache policy from the request
using this library. (CVE-2022-25881)
- jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of
the `altField` option of the Datepicker widget from untrusted sources may execute untrusted code. The
issue is fixed in jQuery UI 1.13.0. Any string value passed to the `altField` option is now treated as a
CSS selector. A workaround is to not accept the value of the `altField` option from untrusted sources.
(CVE-2021-41182)
- jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of
various `*Text` options of the Datepicker widget from untrusted sources may execute untrusted code. The
issue is fixed in jQuery UI 1.13.0. The values passed to various `*Text` options are now always treated as
pure text, not HTML. A workaround is to not accept the value of the `*Text` options from untrusted
sources. (CVE-2021-41183)
- jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of
the `of` option of the `.position()` util from untrusted sources may execute untrusted code. The issue is
fixed in jQuery UI 1.13.0. Any string value passed to the `of` option is now treated as a CSS selector. A
workaround is to not accept the value of the `of` option from untrusted sources. (CVE-2021-41184)
- JSON5 is an extension to the popular JSON file format that aims to be easier to write and maintain by hand
(e.g. for config files). The `parse` method of the JSON5 library before and including versions 1.0.1 and
2.2.1 does not restrict parsing of keys named `__proto__`, allowing specially crafted strings to pollute
the prototype of the resulting object. This vulnerability pollutes the prototype of the object returned by
`JSON5.parse` and not the global Object prototype, which is the commonly understood definition of
Prototype Pollution. However, polluting the prototype of a single object can have significant security
impact for an application if the object is later used in trusted operations. This vulnerability could
allow an attacker to set arbitrary and unexpected keys on the object returned from `JSON5.parse`. The
actual impact will depend on how applications utilize the returned object and how they filter unwanted
keys, but could include denial of service, cross-site scripting, elevation of privilege, and in extreme
cases, remote code execution. `JSON5.parse` should restrict parsing of `__proto__` keys when parsing JSON
strings to objects. As a point of reference, the `JSON.parse` method included in JavaScript ignores
`__proto__` keys. Simply changing `JSON5.parse` to `JSON.parse` in the examples above mitigates this
vulnerability. This vulnerability is patched in json5 versions 1.0.2, 2.2.2, and later. (CVE-2022-46175)
- In libarchive before 3.6.2, the software does not check for an error after calling calloc function that
can return with a NULL pointer if the function fails, which leads to a resultant NULL pointer dereference.
NOTE: the discoverer cites this CWE-476 remark but third parties dispute the code-execution impact: In
rare circumstances, when NULL is equivalent to the 0x0 memory address and privileged code can access it,
then writing or reading memory is possible, which may lead to code execution. (CVE-2022-36227)
- An improper link resolution flaw can occur while extracting an archive leading to changing modes, times,
access control lists, and flags of a file outside of the archive. An attacker may provide a malicious
archive to a victim user, who would trigger this flaw when trying to extract the archive. A local attacker
may use this flaw to gain more privileges in a system. (CVE-2021-31566)
- libarchive 3.4.1 through 3.5.1 has a use-after-free in copy_string (called from do_uncompress_block and
process_block). (CVE-2021-36976)
- There's a flaw in lz4. An attacker who submits a crafted file to an application linked with lz4 may be
able to trigger an integer overflow, leading to calling of memmove() on a negative size argument, causing
an out-of-bounds write and/or a crash. The greatest impact of this flaw is to availability, with some
potential impact to confidentiality and integrity as well. (CVE-2021-3520)
- libpcre in PCRE before 8.44 allows an integer overflow via a large number after a (?C substring.
(CVE-2020-14155)
- An out-of-bounds read was discovered in PCRE before 10.34 when the pattern \X is JIT compiled and used to
match specially crafted subjects in non-UTF mode. Applications that use PCRE to parse untrusted input may
be vulnerable to this flaw, which would allow an attacker to crash the application. The flaw occurs in
do_extuni_no_utf in pcre2_jit_compile.c. (CVE-2019-20454)
- libpcre in PCRE before 8.43 allows a subject buffer over-read in JIT when UTF is disabled, and \X or \R
has more than one fixed quantifier, a related issue to CVE-2019-20454. (CVE-2019-20838)
- SQLite 1.0.12 through 3.39.x before 3.39.2 sometimes allows an array-bounds overflow if billions of bytes
are used in a string argument to a C API. (CVE-2022-35737)
- The go command may execute arbitrary code at build time when using cgo. This may occur when running go
get on a malicious module, or when running any other command which builds untrusted code. This is can by
triggered by linker flags, specified via a #cgo LDFLAGS directive. The arguments for a number of flags
which are non-optional are incorrectly considered optional, allowing disallowed flags to be smuggled
through the LDFLAGS sanitization. This affects usage of both the gc and gccgo compilers. (CVE-2023-29404)
- The go command may generate unexpected code at build time when using cgo. This may result in unexpected
behavior when running a go program which uses cgo. This may occur when running an untrusted module which
contains directories with newline characters in their names. Modules which are retrieved using the go
command, i.e. via go get, are not affected (modules retrieved using GOPATH-mode, i.e. GO111MODULE=off,
may be affected). (CVE-2023-29402)
- Not all valid JavaScript whitespace characters are considered to be whitespace. Templates containing
whitespace characters outside of the character set \t\n\f\r\u0020\u2028\u2029 in JavaScript contexts
that also contain actions may not be properly sanitized during execution. (CVE-2023-24540)
- The go command may execute arbitrary code at build time when using cgo. This may occur when running go
get on a malicious module, or when running any other command which builds untrusted code. This is can by
triggered by linker flags, specified via a #cgo LDFLAGS directive. Flags containing embedded spaces are
mishandled, allowing disallowed flags to be smuggled through the LDFLAGS sanitization by including them in
the argument of another flag. This only affects usage of the gccgo compiler. (CVE-2023-29405)
- Templates containing actions in unquoted HTML attributes (e.g. attr={{.}}) executed with empty input can
result in output with unexpected results when parsed due to HTML normalization rules. This may allow
injection of arbitrary attributes into tags. (CVE-2023-29400)
- Angle brackets (<>) are not considered dangerous characters when inserted into CSS contexts. Templates
containing multiple actions separated by a '/' character can result in unexpectedly closing the CSS
context and allowing for injection of unexpected HTML, if executed with untrusted input. (CVE-2023-24539)
- On Unix platforms, the Go runtime does not behave differently when a binary is run with the setuid/setgid
bits. This can be dangerous in certain cases, such as when dumping memory state, or assuming the status of
standard i/o file descriptors. If a setuid/setgid binary is executed with standard I/O file descriptors
closed, opening any files can result in unexpected content being read or written with elevated privileges.
Similarly, if a setuid/setgid program is terminated, either via panic or signal, it may leak the contents
of its registers. (CVE-2023-29403)
Note that Nessus has not tested for this issue but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"see_also", value:"https://advisory.splunk.com/advisories/SVD-2023-0808.html");
script_set_attribute(attribute:"solution", value:
"For Splunk Enterprise, upgrade versions to 8.2.12, 9.0.6, or 9.1.1.");
script_set_attribute(attribute:"agent", value:"all");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
script_set_cvss_temporal_vector("CVSS2#E:H/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:H/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2022-32207");
script_set_attribute(attribute:"cvss3_score_source", value:"CVE-2023-29405");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"exploited_by_malware", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2023/08/30");
script_set_attribute(attribute:"patch_publication_date", value:"2023/08/30");
script_set_attribute(attribute:"plugin_publication_date", value:"2024/05/02");
script_set_attribute(attribute:"plugin_type", value:"combined");
script_set_attribute(attribute:"cpe", value:"cpe:/a:splunk:splunk");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"CGI abuses");
script_copyright(english:"This script is Copyright (C) 2024 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("splunkd_detect.nasl", "splunk_web_detect.nasl", "macos_splunk_installed.nbin", "splunk_win_installed.nbin", "splunk_nix_installed.nbin");
script_require_keys("installed_sw/Splunk");
exit(0);
}
include('vcf.inc');
include('vcf_extras_splunk.inc');
var app_info = vcf::splunk::get_app_info();
var constraints = [
{ 'min_version' : '8.2.0', 'fixed_version' : '8.2.12', 'license' : 'Enterprise' },
{ 'min_version' : '9.0.0', 'fixed_version' : '9.0.6', 'license' : 'Enterprise' },
{ 'min_version' : '9.1.0', 'fixed_version' : '9.1.1', 'license' : 'Enterprise' }
];
vcf::splunk::check_version_and_report(
app_info:app_info,
constraints:constraints,
severity:SECURITY_HOLE,
flags:{'xss':TRUE}
);
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-7489
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10237
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20225
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-20454
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-20838
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14155
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-28469
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-28851
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-29652
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8169
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8177
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8231
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8284
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8285
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8286
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8908
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-20066
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22569
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22876
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22890
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22897
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22898
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22901
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22922
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22923
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22924
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22925
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22926
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22945
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22946
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22947
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-23343
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-23382
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27918
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27919
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29060
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29425
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29923
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-31525
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-31566
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-33194
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-33195
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-33196
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-33197
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-33198
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34558
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3520
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3572
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-36221
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-36976
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3803
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-38297
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-38561
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-39293
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41182
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41183
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41184
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41771
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41772
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-43565
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44716
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44717
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1705
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1941
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1962
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22576
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-2309
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23491
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23772
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23773
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23806
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-24675
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-24921
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-24999
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-25881
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27191
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27536
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27664
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27774
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27775
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27776
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27778
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27779
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27780
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27781
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-27782
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-28131
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-28327
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-2879
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-2880
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-29526
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-29804
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30115
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30580
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30629
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30630
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30631
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30632
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30633
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30634
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30635
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-31129
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-3171
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32148
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32149
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32189
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32205
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32206
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32207
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32208
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32221
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-33987
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-3509
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-3510
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-3517
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-35252
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-35260
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-35737
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-36227
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-37599
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-37601
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-37603
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-38900
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40023
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40897
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-40899
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-41715
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-41716
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-41720
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-41722
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42003
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42004
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42915
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42916
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-43551
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-43552
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-46175
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-23914
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-23915
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-23916
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-24539
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-24540
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-27533
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-27534
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-27535
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-27536
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-27537
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-27538
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-29400
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-29402
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-29403
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-29404
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-29405
advisory.splunk.com/advisories/SVD-2023-0808.html
7.8 High
CVSS2
Attack Vector
NETWORK
Attack Complexity
LOW
Authentication
NONE
Confidentiality Impact
NONE
Integrity Impact
NONE
Availability Impact
COMPLETE
AV:N/AC:L/Au:N/C:N/I:N/A:C
9.8 High
CVSS3
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
HIGH
Availability Impact
HIGH
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
0.073 Low
EPSS
Percentile
94.1%