+2025-04-20: 3.7.3.0
+
+* appid: added caching for dns detector
+* appid: fixed unknown payload case for domain fronting
+* control: fix data race in ControlConn touch method
+* dns: handle multi transaction-IDs in single DNS-UDP flow
+* extractor: enable TSV(Tab-Separated Values) formatting
+* extractor: extend dns logging
+* extractor: fix static checker warning
+* extractor: make parsing more strict
+* extractor: simplify CSV logger implementation and add configurable delimiter
+* filters: initialize struct fields when instance is defined
+* flow: fix coverity SWAPPED ARGUMENTS and Y2K38_SAFETY issues
+* helpers: validate input from conf file to verify port number string is valid digits
+* host_tracker: recode while loop to avoid bogus coverity infinite loop warning
+* http2_inspect: added settings_max_frame_size parameter and built-in rule 121:44 to check for max frame size
+* http: initialize class member variables in the ctor
+* ips_options: allocate large buffer for base64 decode from heap instead of on stack
+* loggers: allocate large buffer for writing unified2 extra data from heap instead of stack
+* main: added show_snort_packet_latency() help command support
+* main: do not collect configurations for utility shells
+* main: redirect stdin, stdout, stderr to /dev/null with the freopen system call
+* main: refactor signal handling switch statement, return codes and FatalError
+* managers: use std::move to pass shared ptr to new owner to avoid a copy
+* packet_capture: rename pcaps and change default values
+
2025-03-30: 3.7.2.0
* appid: added flag to inspect out-of-order packets
The Snort Team
Revision History
-Revision 3.7.2.0 2025-03-30 22:14:23 EDT TST
+Revision 3.7.3.0 2025-04-20 11:40:57 EDT TST
---------------------------------------------------------------------
logging
* snort.show_config_generation(): show loaded configuration ID
* snort.show_snort_cpu(): show snort cpu usage
+ * snort.show_snort_packet_latency(): show snort packet latency data
* snort.pause(): suspend packet processing
* snort.resume(pkt_num): continue packet processing. If number of
packets is specified, will resume for n packets and pause
Configuration:
* enum extractor.formatting = csv: output format for extractor {
- csv | json }
+ csv | tsv | json }
* string extractor.connector: output destination for extractor
* enum extractor.time = unix: output format for timestamp values {
snort | snort_yy | unix | unix_s | unix_us }
* int http2_inspect.concurrent_streams_limit = 100: Maximum number
of concurrent streams allowed in a single HTTP/2 flow { 100:1000
}
+ * int http2_inspect.settings_max_frame_size = 16777215: Maximum
+ allowed value for settings frame SETTINGS_MAX_FRAME_SIZE {
+ 16384:16777215 }
Rules:
* 121:42 (http2_inspect) too many unacknowledged settings
* 121:43 (http2_inspect) setting acknowledgment without actual
settings
+ * 121:44 (http2_inspect) settings frame size greater than
+ settings_max_frame_size
Peg counts:
packet headers
* string packet_capture.capture_path: directory path to capture
pcaps
- * int packet_capture.max_packet_count = 1000000: cap the number of
+ * int packet_capture.max_packet_count = 0: cap the number of
packets per thread { 0:max32 }
Commands:
* enum extractor.default_filter = pick: default action for protocol
with no filter provided { pick | skip }
* enum extractor.formatting = csv: output format for extractor {
- csv | json }
+ csv | tsv | json }
* string extractor.protocols[].fields: specify fields to log
* string extractor.protocols[].on_events: specify events to log
* enum extractor.protocols[].service: service to extract from {
* int http2_inspect.concurrent_streams_limit = 100: Maximum number
of concurrent streams allowed in a single HTTP/2 flow { 100:1000
}
+ * int http2_inspect.settings_max_frame_size = 16777215: Maximum
+ allowed value for settings frame SETTINGS_MAX_FRAME_SIZE {
+ 16384:16777215 }
* implied http_cookie.request: match against the cookie from the
request message even when examining the response
* implied http_cookie.with_body: option is no longer used and will
capturing
* int packet_capture.group = -1: group filter to use for packet
capturing { -1:32767 }
- * int packet_capture.max_packet_count = 1000000: cap the number of
+ * int packet_capture.max_packet_count = 0: cap the number of
packets per thread { 0:max32 }
* string packet_capture.tenants: comma-separated tenants filter to
use for packet capturing
Unexpected settings ACK.
+121:44 (http2_inspect) settings frame size greater than
+settings_max_frame_size
+
+SETTINGS_MAX_FRAME_SIZE value sent in HTTP/2 settings frame is
+greater than maximum value, as configured by settings_max_frame_size.
+
122:1 (port_scan) TCP portscan
Basic one host to one host TCP portscan where multiple TCP ports are
logging
* snort.show_config_generation(): show loaded configuration ID
* snort.show_snort_cpu(): show snort cpu usage
+ * snort.show_snort_packet_latency(): show snort packet latency data
* snort.pause(): suspend packet processing
* snort.resume(pkt_num): continue packet processing. If number of
packets is specified, will resume for n packets and pause
The Snort Team
Revision History
-Revision 3.7.2.0 2025-03-30 22:14:35 EDT TST
+Revision 3.7.3.0 2025-04-20 11:41:15 EDT TST
---------------------------------------------------------------------
configurable value is 100. It can be configured up to a maximum of
1000.
+5.11.2.2. settings_max_frame_size
+
+This sets the maximum allowed value for settings frame
+SETTINGS_MAX_FRAME_SIZE. The default and max value is 16777215. The
+minimum configurable value is 16384.
+
5.11.3. Detection rules
Since HTTP/2 traffic is processed through the HTTP inspector, all of
* RA - A boolean, denotes the availability of recursive query
support at the server
* Z - A 3 bit integer set to 0 unless DNSSEC is used (see RFC 2535)
- * answers - The list of answers to the query, only A and AAAA types
- are currently supported
+ * answers - The list of answers to the query
+ * TTLs - The list of caching intervals for the corresponding
+ answers
* rejected - A boolean, true when the server responds with an error
code and no query
+ * auth - The list of authoritative responses
+ * addl - The list of additional responses
+
+In the answers, auth, and addl lists the decoding of the following RR
+types is supported: A, AAAA, CNAME, DS, MX, NS, NSEC, PTR, RRSIG,
+SOA, TXT
Fields supported for connection: