]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #5009: ssl: removing cached length check on validation
authorDaniil Kolomiiets -X (dkolomii - SOFTSERVE INC at Cisco) <dkolomii@cisco.com>
Tue, 27 Jan 2026 21:26:39 +0000 (21:26 +0000)
committerChris Sherwin (chsherwi) <chsherwi@cisco.com>
Tue, 27 Jan 2026 21:26:39 +0000 (21:26 +0000)
Merge in SNORT/snort3 from ~DKOLOMII/snort3:ssl_parser_leak_fix to master

Squashed commit of the following:

commit 5ad1b07d2ff6087aa049c306783fffc6c70788d6
Author: Daniil Kolomiiets <dkolomii@cisco.com>
Date:   Mon Dec 8 08:49:52 2025 -0500

    ssl: prevent caching zero size ssl data

src/network_inspectors/appid/service_plugins/service_ssl.cc

index 42a60817045b7de043fbbb7f69d9feda4a5da7ee..ad902a86c3ff6e0ea749f20be25b0b5bdc112fdd 100644 (file)
@@ -218,6 +218,9 @@ static ParseHelloResult parse_client_initiation(const uint8_t* data, uint16_t si
 
 static void save_ssl_cache(ServiceSSLData* ss, uint16_t size, const uint8_t* data)
 {
+    if(size == 0)
+        return;
+
     ss->cached_data = (uint8_t*)snort_calloc(size, sizeof(uint8_t));
     memcpy(ss->cached_data, data, size);
     ss->cached_len = size;
@@ -285,7 +288,7 @@ int SslServiceDetector::validate(AppIdDiscoveryArgs& args)
         }
     }
 
-    if (ss->cached_len and ss->cached_data)
+    if (ss->cached_data)
     {
         if ( (ss->cached_client_data and (args.dir == APP_ID_FROM_INITIATOR)) or (!ss->cached_client_data and (args.dir == APP_ID_FROM_RESPONDER)) )
         {