Code Monkey home page Code Monkey logo

Comments (3)

hobgoblinsmaster avatar hobgoblinsmaster commented on August 14, 2024

Just tried something like this, that seems to work

--- /tmp/sploitscan.py.orig     2024-07-12 08:35:45.273308901 +0200
+++ /usr/lib/python3/dist-packages/sploitscan/sploitscan.py     2024-07-12 08:34:06.286219477 +0200
@@ -358,7 +358,7 @@
             entries.append(f"   └ {other_entries[-1]}")

         if not entries:
-            return ["└ ❌ No data found."]
+            return ["└ ❌ No data found."], 0

         return entries, total_exploits

from sploitscan.

xaitax avatar xaitax commented on August 14, 2024

Thank you @hobgoblinsmaster - I see the issue. Thanks for the hint. Will address it in the next version.
Cheers.

from sploitscan.

xaitax avatar xaitax commented on August 14, 2024

Hi @hobgoblinsmaster

I cannot reproduce it - can you check from the sources?

python .\sploitscan.py CVE-2024-5535

███████╗██████╗ ██╗      ██████╗ ██╗████████╗███████╗ ██████╗ █████╗ ███╗   ██╗
██╔════╝██╔══██╗██║     ██╔═══██╗██║╚══██╔══╝██╔════╝██╔════╝██╔══██╗████╗  ██║
███████╗██████╔╝██║     ██║   ██║██║   ██║   ███████╗██║     ███████║██╔██╗ ██║
╚════██║██╔═══╝ ██║     ██║   ██║██║   ██║   ╚════██║██║     ██╔══██║██║╚██╗██║
███████║██║     ███████╗╚██████╔╝██║   ██║   ███████║╚██████╗██║  ██║██║ ╚████║
╚══════╝╚═╝     ╚══════╝ ╚═════╝ ╚═╝   ╚═╝   ╚══════╝ ╚═════╝╚═╝  ╚═╝╚═╝  ╚═══╝
v0.10.3 / Alexander Hagenah / @xaitax / [email protected]

╔═══════════════════════╗
║ CVE ID: CVE-2024-5535 ║
╚═══════════════════════╝

┌───[ 🔍 Vulnerability information ]
|
├ Published:   2024-06-27
├ Base Score:  N/A (N/A)
├ Vector:      N/A
└ Description: Issue summary: Calling the OpenSSL API function SSL_select_next_proto with an empty supported client
               protocols buffer may cause a crash or memory contents to be sent to the peer. Impact
               summary: A buffer overread can have a range of potential consequences such as
               unexpected application beahviour or a crash. In particular this issue could result in
               up to 255 bytes of arbitrary private data from memory being sent to the peer leading
               to a loss of confidentiality. However, only applications that directly call the
               SSL_select_next_proto function with a 0 length list of supported client protocols are
               affected by this issue. This would normally never be a valid scenario and is
               typically not under attacker control but may occur by accident in the case of a
               configuration or programming error in the calling application. The OpenSSL API
               function SSL_select_next_proto is typically used by TLS applications that support
               ALPN (Application Layer Protocol Negotiation) or NPN (Next Protocol Negotiation). NPN
               is older, was never standardised and is deprecated in favour of ALPN. We believe that
               ALPN is significantly more widely deployed than NPN. The SSL_select_next_proto
               function accepts a list of protocols from the server and a list of protocols from the
               client and returns the first protocol that appears in the server list that also
               appears in the client list. In the case of no overlap between the two lists it
               returns the first item in the client list. In either case it will signal whether an
               overlap between the two lists was found. In the case where SSL_select_next_proto is
               called with a zero length client list it fails to notice this condition and returns
               the memory immediately following the client list pointer (and reports that there was
               no overlap in the lists). This function is typically called from a server side
               application callback for ALPN or a client side application callback for NPN. In the
               case of ALPN the list of protocols supplied by the client is guaranteed by libssl to
               never be zero in length. The list of server protocols comes from the application and
               should never normally be expected to be of zero length. In this case if the
               SSL_select_next_proto function has been called as expected (with the list supplied by
               the client passed in the client/client_len parameters), then the application will not
               be vulnerable to this issue. If the application has accidentally been configured with
               a zero length server list, and has accidentally passed that zero length server list
               in the client/client_len parameters, and has additionally failed to correctly handle
               a "no overlap" response (which would normally result in a handshake failure in ALPN)
               then it will be vulnerable to this problem. In the case of NPN, the protocol permits
               the client to opportunistically select a protocol when there is no overlap. OpenSSL
               returns the first client protocol in the no overlap case in support of this. The list
               of client protocols comes from the application and should never normally be expected
               to be of zero length. However if the SSL_select_next_proto function is accidentally
               called with a client_len of 0 then an invalid memory pointer will be returned
               instead. If the application uses this output as the opportunistic protocol then the
               loss of confidentiality will occur. This issue has been assessed as Low severity
               because applications are most likely to be vulnerable if they are using NPN instead
               of ALPN - but NPN is not widely used. It also requires an application configuration
               or programming error. Finally, this issue would not typically be under attacker
               control making active exploitation unlikely. The FIPS modules in 3.3, 3.2, 3.1 and
               3.0 are not affected by this issue. Due to the low severity of this issue we are not
               issuing new releases of OpenSSL at this time. The fix will be included in the next
               releases when they become available.

┌───[ ♾️ Exploit Prediction Score (EPSS) ]
|
└ EPSS Score:  0.04% Probability of exploitation.

┌───[ 🛡️ CISA KEV Catalog ]
|
└ ❌ No data found.

┌───[ 💣 Public Exploits (Total: 0) ]
|
└ ❌ No data found.

┌───[ 🕵️ HackerOne Hacktivity ]
|
├ Rank:        6841
├ Reports:     0
└ Severity:    Unknown: 0 / None: 0 / Low: 0 / Medium: 0 / High: 0 / Critical: 0

┌───[ 🤖 AI-Powered Risk Assessment ]
|
|
| 1. Risk Assessment
| -------------------
| The vulnerability in question pertains to the OpenSSL API function SSL_select_next_proto, which
| can cause a crash or leakage of up to 255 bytes of memory content to a peer if called with an
| empty supported client protocols buffer. This can lead to unexpected application behavior,
| crashes, and potential loss of confidentiality. While such a scenario is unlikely due to the
| nature of valid use cases, it can occur due to configuration or programming errors. The likelihood
| of exploitation is low, as it requires specific erroneous configurations and cannot typically be
| manipulated by an attacker. Confidentiality is at risk since private data could be leaked, but
| integrity and availability are less impacted as the primary threat is data exposure rather than
| modification or denial of service. The overall impact is assessed as low due to the requirement of
| using NPN over ALPN, the latter being more widely deployed and not vulnerable under typical
| conditions.
|
| 2. Potential Attack Scenarios
| ------------------------------
| One potential attack scenario involves a misconfigured server using NPN instead of ALPN. An
| application mistakenly configured with a zero-length list of supported client protocols calls
| SSL_select_next_proto. An attacker operating a malicious server engages in a TLS handshake and the
| function sends back the adjacent memory contents instead of valid protocol data. The attacker can
| use this opportunity to observe potentially sensitive information from the server's memory. Given
| its low likelihood and complex setup involving specific programming errors, active exploitation
| remains unlikely under normal conditions.
|
| 3. Mitigation Recommendations
| ------------------------------
| Immediate mitigation can be achieved by ensuring applications do not call SSL_select_next_proto
| with an empty protocol list. Development teams should audit their applications for any improper
| handling of SSL protocol lists and correct any configuration errors. Where feasible, upgrading
| OpenSSL to versions 3.3.2, 3.2.3, 3.1.7, 3.0.15, 1.1.1za, or 1.0.2zk once they are available will
| resolve the issue. Additionally, organizations should switch from NPN to ALPN, aligning with
| current best practices and reducing vulnerability exposure. More information on updates and
| patches can be accessed through the following links provided in the advisory:
| https://www.openssl.org/news/secadv/20240627.txt,
| https://github.com/openssl/openssl/commit/e86ac436f0bd54d4517745483e2315650fae7b2c.
|
| 4. Executive Summary
| ---------------------
| A recently identified vulnerability in the OpenSSL API function SSL_select_next_proto could
| potentially expose up to 255 bytes of private memory data if called with an empty list of
| supported client protocols. This scenario, while deemed unlikely due to its dependence on
| configuration or programming errors and the use of the deprecated NPN protocol, poses a risk
| primarily to confidentiality. Mitigation strategies include auditing and correcting application
| configurations, prioritizing the use of ALPN over NPN, and planning for eventual updates to newer
| OpenSSL versions that address the issue. This vulnerability underlines the importance of
| maintaining up-to-date cryptographic libraries and adhering to modern protocol standards. Non-
| technical stakeholders should understand that while the risk is currently assessed as low,
| proactive measures are essential to safeguard sensitive data and maintain system integrity.
|
└────────────────────────────────────────

┌───[ ⚠️ Patching Priority Rating ]
|
└ Priority:     D

┌───[ 📚 Further References ]
|
├ https://www.openssl.org/news/secadv/20240627.txt
├ https://github.com/openssl/openssl/commit/e86ac436f0bd54d4517745483e2315650fae7b2c
├ https://github.com/openssl/openssl/commit/99fb785a5f85315b95288921a321a935ea29a51e
├ https://github.com/openssl/openssl/commit/4ada436a1946cbb24db5ab4ca082b69c1bc10f37
├ https://github.com/openssl/openssl/commit/cf6f91f6121f4db167405db2f0de410a456f260c
├ https://github.openssl.org/openssl/extended-releases/commit/b78ec0824da857223486660177d3b1f255c65d87
├ https://github.openssl.org/openssl/extended-releases/commit/9947251413065a05189a63c9b7a6c1d4e224c21c
├ http://www.openwall.com/lists/oss-security/2024/06/27/1
├ http://www.openwall.com/lists/oss-security/2024/06/28/4
└ https://security.netapp.com/advisory/ntap-20240712-0005/

from sploitscan.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.