+8.0.0-beta1 -- 2025-04-08
+
+Feature #7644: pgsql: add CopyOut subprotocol/mode
+Feature #7633: dpdk: refrain from creating TX queues on zero TX descriptors
+Feature #7620: smb: configurable logging
+Feature #7596: mime: add email.to keyword
+Feature #7595: mime: add email.subject keyword
+Feature #7592: mime: add email.from keyword
+Feature #7588: mime: add email.cc keyword
+Feature #7565: dcerpc: rpc interfaces info in request event
+Feature #7533: detect/ldap: add ldap.request.attribute_type and ldap.request.attribute keywords, and same for responses
+Feature #7532: detect/ldap: add keywords for LDAPResult
+Feature #7517: detect: smtp.mail_from keyword
+Feature #7516: detect: smtp.rcpt_to keyword
+Feature #7515: detect: smtp.helo keyword
+Feature #7513: detect/integers: add support for negated strings when enum is used
+Feature #7508: rules: ftp.reply keyword
+Feature #7503: rules: ftp.command_data keyword
+Feature #7502: rules: ftp.command keyword
+Feature #7485: rules: allow specifying explicit hooks
+Feature #7482: eve/flow: log tcp session reuse as a timeout reason
+Feature #7481: rules/actions: explicit action scopes
+Feature #7477: ldap: add support for AbandonRequest
+Feature #7471: detect/ldap: add ldap.distinguished_name keywords for request and response
+Feature #7453: detect/ldap: add ldap.request.operation and ldap.response.operation keywords
+Feature #7433: eve/alert: enrich decoder event rules
+Feature #7403: requires: add ability to check for a rule keyword
+Feature #7382: dpdk: create separate packet mempools per queue
+Feature #7381: dpdk: when running with ice driver fully start only when link state change event is caught
+Feature #7380: dpdk: provide "auto" option for RX/TX descriptors
+Feature #7373: dpdk: provide "auto" option to mempool-size property
+Feature #7337: dpdk: implement configuration of RSS using rte_flow rules for major cards
+Feature #7330: dpdk: support HW VLAN stripping
+Feature #7320: flow: add user registerable flow update callbacks
+Feature #7319: flow: add user registerable flow initialization callback
+Feature #7311: http1: log invalid status as string
+Feature #7291: sdp: implements sticky buffer
+Feature #7243: lua: expose dataset functions
+Feature #7240: libsuricata: use provided threads and packets
+Feature #7204: sip: rustify sticky buffers
+Feature #7203: ldap: extend parser for udp
+Feature #7202: ldap: frame support
+Feature #7170: hyperscan: Cache Hyperscan databases to disk to speed up the startup
+Feature #7120: threshold: add backoff type
+Feature #7108: tls: ALPN keyword
+Feature #7098: eve: add payload length field
+Feature #7074: lua: expose base64 functions
+Feature #7073: lua: expose hashing functions (md5/sha1/sha256)
+Feature #7055: tls: log ALPN
+Feature #7051: websocket: data frame
+Feature #7045: tls-store: add support client certs
+Feature #7017: dns: add OPT rdata struct and parsing
+Feature #7012: rules: add dns.response sticky buffer
+Feature #7011: dns: additional section parsing and logging
+Feature #6967: multi-tenancy: support thresholding per tenant
+Feature #6943: pcap: datalink type 229 not (yet) supported in module PcapFile
+Feature #6939: lua: incremement stat when a lua rule exhausts its instruction count
+Feature #6857: iprep: support seeing if rule is part of a rep list
+Feature #6856: http: anomaly when request line is missing protocol
+Feature #6832: pcap/log: Support BPFs for filtering pcap output
+Feature #6827: arp: implement decoder and logger
+Feature #6822: threshold: support tracking by flow
+Feature #6788: bypass: decouple stream.bypass dependency from TLS encrypted bypass
+Feature #6739: dpdk: warn the user if user-settings are adjusted to the device capabilities
+Feature #6666: dns: add keyword for dns rrtype: dns.rrtype
+Feature #6648: detect: integer: support bitmasks
+Feature #6647: detect: integers: support for enumerations
+Feature #6646: detect: integer: support negated ranges
+Feature #6645: detect: integer parsed with hexadecimal notation
+Feature #6637: requires: add skipped rules to stats
+Feature #6627: sdp: add protocol parser and logger
+Feature #6621: dns: add keyword for dns rcode: dns.rcode
+Feature #6550: profiling/rules: allow enabling profiling for pcap file runs
+Feature #6546: detect/transform: strip_pseudo_headers
+Feature #6497: dns: new detection buffer: dns.query.name
+Feature #6496: dns: new detection buffer: dns.answer.name
+Feature #6487: detect/transform: from_base64
+Feature #6480: plugins: allow plugins to specify the version of suricata they are for
+Feature #6455: txbits: support for new type of bits
+Feature #6439: rules: add to_lowercase transform
+Feature #6426: http2: app-layer-event and normalization when userinfo is in the :authority pseudo header for the http.host header
+Feature #6396: rules: add protocol string support for mqtt
+Feature #6379: ja4: support for TLS and QUIC
+Feature #6374: sip: add sticky buffers for headers
+Feature #6366: pop3: protocol detection
+Feature #6290: http: support case insensitive testing of header name existence
+Feature #6260: flow: flow matching excluding packet recursion level
+Feature #6215: flow/output: log triggered exception policy
+Feature #6164: rules: allow matching on flow pkts and bytes
+Feature #6090: eve/alert: missing dcerpc metadata
+Feature #6079: eve/dcerpc: eve/smb: log dcerpc uuid with request/response txs
+Feature #5976: eve/stats: allow hiding counters whose value is 0
+Feature #5972: rules: "requires" keyword representing the minimum version of suricata to support the rule
+Feature #5839: dpdk: power saving mode
+Feature #5816: stats: exception policy counters
+Feature #5773: doh: support DNS over HTTPS (DoH)
+Feature #5743: http2: add frame support
+Feature #5734: ssh: add frame support
+Feature #5665: rules: bidirectional transaction matching
+Feature #5647: rules: mark flow as elephant flow
+Feature #5646: rules: allow matching on flow pkts and bytes in either direction
+Feature #5489: research: multi version rules; or version dependent rules
+Feature #5466: detect: allow alert-then-pass logic
+Feature #5446: rules: allow ranges in dns.opcode value
+Feature #5234: tls: subjectAltName buffer
+Feature #5082: smb: keyword for matching the SMB files
+Feature #5075: smb: keyword for the SMB version
+Feature #4974: eve: log rule references
+Feature #4905: smtp: add stream app-layer frame support
+Feature #4904: dcerpc: frames support
+Feature #4853: eve: Add information about Suricata version
+Feature #4777: lua: implement sandboxing
+Feature #4776: lua: vendor latest lua stable
+Feature #4321: http2: Support link between packets in the same stream
+Feature #4102: plugins: support creating app-layer parser, logger and detect
+Feature #3958: enip: convert protocol parser to rust
+Feature #3487: mime: multi-part parser in Rust
+Feature #3351: sip: parse traffic over tcp
+Feature #2816: vlan: support more than 2 layers
+Feature #2696: http: implement parser in rust
+Feature #2695: websocket support
+Feature #2486: prefilter/fast_pattern logic for flowbits
+Feature #2377: deprecate: ssh.softwareversion and ssh.protoversion
+Feature #2280: http: rules that match both request and response
+Feature #1971: lua: make mandatory
+Feature #1520: multi-tenancy: verbose output clarity
+Feature #1199: protocol: LDAP support
+Feature #1125: smtp: improve protocol detection
+Feature #1065: rules: introduce vlan id keyword
+Feature #845: stats: track memory consumption
+Security #7615: datasets: signature keyword setting can cause high memory usage(MODERATE - CVE 2025-29916)
+Security #7613: decode_base64: signature can do large memory allocation(HIGH - CVE 2025-29917)
+Security #7526: detect: infinite loop in DetectEngineContentInspectionInternal with negated pcre(HIGH - CVE 2025-29918)
+Security #7465: ldap: bound of number of transactions is not fully enforced
+Security #7464: doh2: buffer is not really limited to 65K as should be for DNS
+Security #7458: af-packet: defrag option can lead to truncated packets(HIGH - CVE 2025-29915)
+Security #7450: tracking: signature can allocate arbitrary amount of memory
+Security #7411: tcp: generic detection bypass using TCP urgent support(HIGH - CVE 2024-55629)
+Security #7393: tcp: segfault on StreamingBufferSlideToOffsetWithRegions(CRITICAL - CVE 2024-55627)
+Security #7366: bpf: oversized bpf file can lead to buffer overflow(MODERATE - CVE 2024-55626)
+Security #7280: dns: quadratic complexity in logging and invalid json as output(HIGH - CVE 2024-55628)
+Security #7267: ja4: non alphanumeric characters in alpn lead to panic(CRITICAL - CVE 2024-47522)
+Security #7229: detect: write to read-only memory in transforms(CRITICAL - CVE 2024-55605)
+Security #7209: thash: random factor not used; possible abusive hash collisions(CRITICAL - CVE 2024-47187)
+Security #7195: datasets: rule with unset makes suricata abort(HIGH - CVE 2024-45795)
+Security #7191: http: quadratic complexity in headers processing/finding(CRITICAL - CVE 2024-45797)
+Security #7183: smb: hashmap entries not removed for error responses
+Security #7104: http2: oom from duplicate headers(CRITICAL - CVE 2024-38535)
+Security #7085: eve: transactions can be logged an arbitrary number of times
+Security #7067: defrag: off by one leads to possible evasion(HIGH - CVE 2024-45796)
+Security #7040: defrag: id reuse can lead to invalid reassembly(CRITICAL - CVE 2024-37151)
+Security #7029: http/range: segv when http.memcap is reached(HIGH - CVE 2024-38536)
+Security #6987: modbus: txs without responses are never freed(MODERATE - CVE 2024-38534)
+Security #6902: base64: off-by-three overflow in DecodeBase64()(HIGH - CVE 2024-32664)
+Security #6900: http2: timeout logging headers(HIGH - CVE 2024-32663)
+Security #6892: http2: oom on copying compressed headers(CRITICAL - CVE 2024-32663)
+Security #6866: eve: excessive ssh long banner logging(HIGH - CVE 2024-28870)
+Security #6799: ssh: quadratic complexity in overlong banner(CRITICAL - CVE 2024-28870)
+Security #6796: output/filestore: slowdown because of running OutputTxLog on useless packets
+Security #6770: log: arbitrary-length value can be logged
+Security #6757: libhtp: quadratic complexity checking after request line missing protocol(CRITICAL - CVE 2024-28871)
+Security #6680: smb: pcap with many open files takes too much time
+Security #6675: ip-defrag: packet can be considered complete even with holes(MODERATE - CVE 2024-32867)
+Security #6669: ip defrag: re-assembly error in bsd policy(MODERATE - CVE 2024-32867)
+Security #6668: ip defrag: final overlapping packet can lead to "hole" in re-assembled data(MODERATE - CVE 2024-32867)
+Security #6493: ip defrag: several issues with overlap handling
+Security #6481: http2: quadratic complexity in find_or_create_tx not bounded by max-tx(CRITICAL - CVE 2024-23836)
+Security #6477: smtp: quadratic complexity from unbounded number of transaction per flow(CRITICAL - CVE 2024-23836)
+Security #6444: http1: quadratic complexity from infinite folded headers(CRITICAL - CVE 2024-23837)
+Security #6441: detect: heap use after free with http.request_header keyword(CRITICAL - CVE 2024-23839)
+Security #6411: pgsql: quadratic complexity leads to over consumption of memory(HIGH - CVE 2024-23835)
+Security #6299: mqtt: pcap with anomalies takes too long to process because of app-layer-event detection
+Security #5926: http2: evasion by splitting header fields over frames(HIGH - CVE 2024-24568)
+Security #5921: http1: configurable limit for maximum number of live transactions per flow(CRITICAL - CVE 2024-23836)
+Bug #7618: af-packet: setting bpf fails
+Bug #7577: detect/files: file.data does not use content passed when closing the file internally
+Bug #7567: dcerpc: assertion triggered !((res.needed + res.consumed < input_len))
+Bug #7562: detect/flow: null deference in signature parsing
+Bug #7560: detect/krb5: undefined behavior with krb5.ticket_encryption when passing -INT32_MAX
+Bug #7556: quic: valid traffic blocked in IPS mode
+Bug #7554: tls: parser error on unACK'd data in FIN shutdown
+Bug #7552: app-layer: misdetection if response is seen first without request
+Bug #7548: dcerpc: avoid integer underflow
+Bug #7523: rules/prefilter: prefilter keyword ignored when in content rule
+Bug #7521: detect/ip-only: false positive alerts on pseudo packets ending a one direction flow
+Bug #7495: protocol detection: probing parsers do not finish as soon as possible
+Bug #7469: smtp: recognize when client initiated TLS
+Bug #7467: detect: checksum detection broken by stream.checksum-validation
+Bug #7466: lua: Flowvar memory leak
+Bug #7455: flow: flow timeout behavior non-deterministic
+Bug #7449: app-layer metadata does not get logged for stream rules and unidirectional protocols
+Bug #7447: NULL dereference in ThreadLogFileHashFreeFunc in bug-5198 SV test
+Bug #7444: dpdk: RSS key length missmatch on ice (E810) card with DPDK version 22.11.6
+Bug #7440: eve/frame: incomplete frame logging
+Bug #7437: protocol detection : probing parsers are limited to 32 by use of bitflag
+Bug #7436: sip: remove UPDATE pattern as already used by HTTP/1.1
+Bug #7435: fuzz: fix protocol detection target initialization sequence
+Bug #7422: tcp: GAP event set on unack'd data following a RST
+Bug #7418: requires: rules with unmet requirements are still loaded
+Bug #7417: rust: remove shared reference to static mutable
+Bug #7414: detect: decoder event rules fail to match on invalid packets
+Bug #7409: http: crash in strip_pseudo_headers transform
+Bug #7406: eve: Alerts with app_proto=tls no longer logs the tls app data
+Bug #7398: datasets: scan-build warning call to blocking fn inside critical section
+Bug #7394: ldap: support starttls with tls upgrade
+Bug #7365: flow-manager: multi Flow Manager memory leak problem
+Bug #7361: rules: unknown internal events not being detected as errors
+Bug #7359: eve/syslog: crashes on use
+Bug #7338: rust: different int types turn garbage on FFI boundary
+Bug #7334: asan/profiling: global-buffer-overflow error
+Bug #7333: tls: impossible to log alpns with 'custom' logging
+Bug #7332: tls: fix duplicate EVE field issuerdn
+Bug #7326: http: FN with prefilter if the first of multi buffer did not match
+Bug #7325: sdp: one or more time descriptions
+Bug #7323: mqtt: wrong and missing direction for keywords
+Bug #7318: flow: flow timeout pseudo packet triggers unexpected alert
+Bug #7315: template: remove usage of template-rust
+Bug #7314: misc/warnings: compile warnings during build
+Bug #7309: http: incorrect file direction handling
+Bug #7305: sdp: media's encryption key not logged
+Bug #7303: detect: memleak in case of errors during initialization
+Bug #7302: conf: memleak if yaml parser is initialized before checking if file exists
+Bug #7300: output: oversized records lead to invalid json
+Bug #7296: detect: transform base64 creates a 0-sized variable-length array
+Bug #7279: dns: protocol detection is not strict enough
+Bug #7270: conf: nullptr dereference if mem alloc fails for a node in yaml parser
+Bug #7264: detect/flow: ACK with data on 3whs fails to match 'flow:established'
+Bug #7256: ja3: Error: ja3: Buffer should not be NULL
+Bug #7253: fuzz: CIFuzz is not fuzzing PRs as it is supposed to
+Bug #7241: app-layer-protocol: negated matching false positive
+Bug #7238: app-layer: protocol flows are miscounted in case of error
+Bug #7235: tls: a rule stops working since 7.0.5
+Bug #7230: dcerpc: invalid dcerpc header is not rejected
+Bug #7228: dns: no data logged, and no events with udp corrupt additional record
+Bug #7226: lua: use crate from crates.io instead of github to fix offline builds
+Bug #7218: profiling: packet profiling to log file is only active with rule profiling
+Bug #7213: frames: stream frame is not always the first one registered
+Bug #7210: docs: inconsistent spelling in documentation for RFB `security_result` key
+Bug #7206: cbindgen: comptability with newer version 0.27
+Bug #7200: smtp: crash in ByteExtractString
+Bug #7199: detect: missing app-layer metadata in alerts
+Bug #7187: detect: dcerpc logging and matching issues
+Bug #7181: fuzz: File confyaml.c is missing
+Bug #7176: ldap: crash when encountering GAP
+Bug #7172: detect/integers: do not bother to free NULL pointer on setup/parse failure
+Bug #7169: lua/output: vendored lua search for modules in /usr/local/ rather than /usr/
+Bug #7158: tcp: 'broken ack' event set on flow timeout
+Bug #7135: util/thash: debug assertion for memuse
+Bug #7126: decode/base64: Error message on packet path.
+Bug #7121: smb/ntlmssp: nonsense smb.ntlmssp.version values
+Bug #7115: dpdk: timestamping packets through TSC does not yield the same time as kernel time
+Bug #7113: pgsql: track 'progress' in tx per direction
+Bug #7111: protodetect: DNS flow direction is not correct sometimes
+Bug #7106: packet: app-layer-events incorrectly used on recycled packets
+Bug #7093: sip: wrong slice used for sip_take_line with tcp leads to quadratic oom
+Bug #7059: smtp: split name logged as 2 names
+Bug #7053: bypass: cannot bypass udp flow from first packet in second direction
+Bug #7049: util/radix-tree: Possible dereference of nullptr in case of unsuccess allocation of memory for node
+Bug #7048: af-packet: failure to start up on many threads plus high load
+Bug #7037: pcap/log: MacOS rotates file well before limit is reached
+Bug #7034: time: in offline mode, time can stay behind at pcap start
+Bug #7028: base64: heap buffer overflow in RFC 2045 and 4648 modes
+Bug #7025: websocket: wrong value for opcode ping/pong
+Bug #7022: unix-socket: iface-bypassed-stat crash
+Bug #7020: unix-socket: hostbit commands don't properly release host
+Bug #7013: rust: build with rust 1.78 with slice::from_raw_parts now requiring the pointer to be non-null
+Bug #7000: pgsql: trigger raw stream reassembly
+Bug #6994: sip/sdp: logget closes unopened array for empty medias
+Bug #6989: tls.random buffers don't work as expected
+Bug #6985: base64: coverity dead code warning
+Bug #6984: mqtt: do not log non-string messages?
+Bug #6983: eve/alert/metadata: no pgsql object encapsulation
+Bug #6973: detect: log relevant frames app-layer metdata
+Bug #6969: dataset: lookup function is not working with ip type
+Bug #6964: base64: consumed bytes are incorrectly set for different modes
+Bug #6959: http: improve handling of content encoding: gzip but request_body not actually compressed
+Bug #6957: Assert: BUG_ON(id <= 0 || id > (int)thread_store.threads_size);
+Bug #6954: eve: packet field packet_info.linktype is non-portable
+Bug #6948: detect/http.response_body: false positive because not enforcing direction to_client
+Bug #6942: decode/ppp: decoder.event.ppp.wrong_type on valid packet
+Bug #6940: lua: handle errors in lua rules
+Bug #6921: jsonbuilder: serializes Rust f64 NaNs to an invalid literal
+Bug #6918: pcre2: compile warning
+Bug #6913: reimplement systemd sd_notify w/o linking to libsystemd
+Bug #6906: smtp/mime: data command rejected by pipelining server does not reset data mode
+Bug #6904: mime: buffer overflow in GetFullValue() (util-decode-mime.c)
+Bug #6903: streaming buffer: heap overflows in StreamingBufferAppend()/StreamingBufferAppendNoTrack()
+Bug #6896: detect/port: upper boundary ports are not correctly handled
+Bug #6891: sip: usage of Vec instead of Vecdeque leads to quadratic complexity on cleanup
+Bug #6889: detect: slowdown in rule parsing
+Bug #6887: defrag: reassembled packet can have wrong datatype
+Bug #6883: rust: clippy 1.77 warning
+Bug #6881: detect/port: port grouping does not happen correctly if gap between a single and range port
+Bug #6877: Suricata 8 general protection fault ip:698117 sp:7fd537b08090
+Bug #6875: output/alert: assertion failed p->flow != NULL
+Bug #6871: dpdk: fix compatibility issues for ice cards
+Bug #6864: detect: ipopts keyword false positive
+Bug #6861: profiling/rules: crash when profiling ends
+Bug #6846: eve/alerts: wrongly using tx id 0 when there is no tx
+Bug #6843: detect/port: port ranges are incorrect when a port is single as well as a part of range
+Bug #6839: coverity: warning in port grouping code
+Bug #6838: eve/filetypes: move from plugin api to eve api
+Bug #6837: netmap: error message Netmap pipes (with lb)
+Bug #6835: BUG_ON triggered from TmThreadsInjectFlowById
+Bug #6834: iprep: rule with '=,0' can't match
+Bug #6811: capture plugins: capture plugins unusable due to initialization order
+Bug #6790: dpdk: evaluate the correct handling of DPDK ports on shutdown
+Bug #6787: decode/pppoe: Suspicious pointer scaling
+Bug #6782: streaming/buffer: crash in HTTP body handling
+Bug #6778: detect/tls.certs: direction flag checked against wrong field
+Bug #6766: multi-tenancy: dead lock during tenant loading
+Bug #6762: hugepages: error for FreeBSD when kernel NUMA build option is not enabled
+Bug #6760: af-packet: hugepages Error for ARM64 and af-packet IPS mode
+Bug #6755: netmap: deadlock if netmap_open fails
+Bug #6753: detect/cip: missing return-value check for a 'scanf'-like function
+Bug #6745: util/mime: Memory leak at util-decode-mime.c:MimeDecInitParser
+Bug #6741: dpdk: automatic cache calculation is broken
+Bug #6737: dpdk: property configuration can lead to integer overflow
+Bug #6733: tcp: tcp flow flags changing incorrectly when ruleset contains content matching
+Bug #6732: eve/stats: parent interface object in stats contains VLAN-ID as keys
+Bug #6726: stream: stream.drop-invalid drops valid traffic
+Bug #6715: dpdk: NUMA warning on non-NUMA system
+Bug #6710: rules: failed rules after a skipped rule are recorded as skipped, not failed
+Bug #6678: datasets: discard datasets that hit the memcap while loading correctly
+Bug #6664: eve/smtp: attachment filenames not logged
+Bug #6661: detect/content-inspect: FN on negative distance
+Bug #6656: detect/requires: assertion failed !(ret == -4)
+Bug #6643: http: wrongly assuming http0.9 leads to missed headers
+Bug #6634: tls: Invalid ja3 due to double client hello
+Bug #6633: stats: flows with a detection-only alproto not accounted in this protocol
+Bug #6619: profiling: runtime much longer to run than it used to
+Bug #6618: endace: timestamp fixes
+Bug #6617: detect/filestore: flow, to_server was broken by moving files into transactions
+Bug #6615: detect/analyzer: misrepresenting negative distance value
+Bug #6592: mqtt: frames on TCP are not set properly when parsing multiple PDUs in one go
+Bug #6585: src: SCTIME_FROM_TIMESPEC() creates incorrect timestamps
+Bug #6584: src: SCTIME_ADD_SECS() macro zeros out ts.usec part
+Bug #6578: ssh: no alert on packet with Message Code: New Keys (21)
+Bug #6574: detect/filestore: memory leak on rule parsing
+Bug #6553: eve/alert: payload/payload_printable misrepresent data in case of overlaps
+Bug #6551: Invalid registration of prefiltering in stream size
+Bug #6547: http2: http.response_line has leading space
+Bug #6527: cppcheck 2.11 errors
+Bug #6501: eve/alert: missing TFTP metadata
+Bug #6500: eve/alert: missing FTP metadata
+Bug #6490: profiling: rule profiling doesn't support absolute paths
+Bug #6483: http.request_headers - odd behavior with multiple signtures
+Bug #6419: dpdk: Analyze hugepage allocation on startup more thoroughly
+Bug #6415: http: various header buffer not populated when malformed header value exists
+Bug #6414: detect-engine/port: recursive DetectPortInsert calls are expensive
+Bug #6408: Output plugins receive identifier, but not thread identifier
+Bug #6405: eve: ethernet src_mac should match src_ip
+Bug #6398: eve/stats: threads object in stats contains memcap_pressure scalars
+Bug #6393: detect/filestore: be more explicit about the U16_MAX limit per signature group head
+Bug #6390: detect/filestore: do not store if "both,flow" is triggered after the file was set to "nostore"
+Bug #6389: pgsql: u16 overflow found by oss-fuzz w/ quadfuzz
+Bug #6376: detect: huge increase on start up time with a lot of ip-only rules and bigger HOME_NET
+Bug #6347: log-pcap: crash with suricata.yaml setting max-file to 1
+Bug #6305: drop: assertion failed !(PKT_IS_PSEUDOPKT(p)) && !PacketCheckAction(p, ACTION_DROP)
+Bug #6304: schema.json : if protocol such as ENIP is detection only, we do not have _tcp suffix in stats
+Bug #6281: dns: structure of query differs between "alert" and "dns" event types
+Bug #6280: base64: strict mode should only accept strings that can be reliably converted back
+Bug #6254: bypass: thread "FB" failed to start in time: flags 0003
+Bug #6092: eve/alert: missing pgsql metadata
+Bug #6080: pgsql/probe: TCP on 5432 traffic incorrectly tagged as PGSQL
+Bug #5977: eve/alert: missing KRB5 metadata
+Bug #5539: landlock: coverity warnings
+Bug #5524: pgsql: parser should not error on parsing error, so as to keep on parsing the next PDUs
+Bug #5491: smtp: response 530 appears to generate an invalid response alert
+Bug #5486: eve: ethernet metadata is missing for some protocols or parts of a protocol
+Bug #5279: nom: use of count combinator can use too much memory
+Bug #5220: detect/base64_data: fast_pattern shouldn't be allowed
+Bug #5185: mime: URL extraction missing
+Bug #4921: detect/app-layer-protocol: unexpected results when one direction state "failed"
+Bug #4858: fuzz: Timeout with pcre
+Bug #4734: pfring: memory leak
+Bug #3910: datasets: for type string the memcap isn't applied to the string data
+Bug #3682: detect/bsize: error for impossible matching conditions
+Bug #2886: imap: protocol detection is incomplete
+Bug #2881: http.protocol parsing inaccuracy : accept spaces in URI
+Bug #2224: rules: negated http_* match returns false if buffer not populated
+Bug #1457: conf: non-standard units used for file size indication
+Optimization #7617: af-packet: set defrag based on passive or inline mode
+Optimization #7558: detect: convert rule group dumping to JsonBuilder
+Optimization #7358: CI: only run CodeQL python if the PR contains changed files that are python
+Optimization #7304: detect: improve support for multi-protocol keywords
+Optimization #7297: src: remove duplicate function declarations
+Optimization #7272: af-packet: improve startup time
+Optimization #7208: tcp/reassemble: GetBlock takes O(nlgn) in worst case
+Optimization #7185: stats: exceptions: use search-friendly log output
+Optimization #7178: rfb: rustify keywords and app-layer registration
+Optimization #7155: pcap: use larger read size buffer for a performance increase
+Optimization #7087: app-layer: track modified transactions
+Optimization #7065: base64: move the decoder to rust
+Optimization #7044: app-layer: clean up truncate callbacks and logic
+Optimization #7018: dns/tcp: allow triggering raw stream reassembly
+Optimization #7002: detect: move pseudo packet checks out of keyword Match funcs
+Optimization #6938: packet: optimize packet data storage
+Optimization #6937: compile: make code clean with -Wunused-macros
+Optimization #6878: conf: quadratic complexity in yaml loader
+Optimization #6873: byte_extract: convert keyword/option parsing to Rust
+Optimization #6855: src: var code cleanups
+Optimization #6852: mpm/ac: support endswith
+Optimization #6821: smtp: add 535 code
+Optimization #6795: detect/port: PortGroupWhitelist fn takes a lot of processing time
+Optimization #6792: detect/port: port grouping is quite slow in worst cases
+Optimization #6786: util-rohash.c : make code cleaner to make CodeQL happier
+Optimization #6775: detect: do not run tx detection on tcp non established packets
+Optimization #6773: app-layer/template: no limit on txs number
+Optimization #6728: detect: prefilter for events (decode, stream, app-layer, etc...)
+Optimization #6718: detect/frames: avoid rescanning in IPS mode
+Optimization #6702: streaming-buffer: Explore Rank Balanced trees
+Optimization #6575: detect/multi-buffer: use single definition of struct PrefilterMpmKrb5Name
+Optimization #6569: threading: fix condition signalling w/o taking lock first
+Optimization #6454: detect: force os to release memory on rule reload
+Optimization #6433: packetpool: improve return sync logic
+Optimization #6387: mqtt: move parser registration code to the rust side
+Optimization #6111: defrag: avoid passing null pointers to functions
+Optimization #5699: dcerpc: switch to incomplete api for tcp
+Optimization #5672: smb: avoid unbounded hash maps
+Optimization #5634: detect: unify ValidateCallback for MD5-like keywords
+Optimization #5566: pgsql: add events
+Optimization #5517: decode: big clean up (macros and functions)
+Optimization #5311: ftp: use unsigned integer for input_len
+Optimization #5047: sip: implement pattern based protocol detection
+Optimization #4798: af-packet: default to tpacket-v3 in IDS mode
+Optimization #3827: output: clean up logging initialization code
+Optimization #3449: eve: output calls fflush very often
+Optimization #3427: datasets: issue warning/info for data with type string that are not base64
+Optimization #426: threshold: rule based thresholding data structure improvement
+Task #7604: lua: turn http into lib
+Task #7602: lua: turn dns into lib
+Task #7601: lua: turn dnp3 into lib
+Task #7492: lua: remove script_api_ver check from needs block
+Task #7489: lua: turn flow into lib
+Task #7488: lua: turn packet into lib
+Task #7456: engine/analysis: report rule state altered by flowbit rule
+Task #7426: flowint: add isnotset support
+Task #7350: firewall usecase: log app-layer metadata for for catch-all drop rules
+Task #7341: rust: use bindgen to generate Rust bindings to C functions
+Task #7287: schema: add missing tls fields certificate and chain
+Task #7246: libhtp 0.5.49
+Task #7227: logging: document and cleanup low level logging registration
+Task #7219: rust/crates: update base64
+Task #7167: dns: make the version field in a dns object required
+Task #7165: napatech: move into bundled plugin
+Task #7162: pfring: move into bundled plugin
+Task #7154: plugins: add template detection plugin
+Task #7152: plugins: add template logger plugin
+Task #7151: plugins: add template app-layer plugin
+Task #7130: rust: dependency "time" fails to build on Rust nightly
+Task #7058: fuzz/base64: check decoded strings for correctness in strict mode
+Task #6965: libhtp 0.5.48
+Task #6962: yaml: unify 0 stats counter config option terminology
+Task #6961: lua: use a rust crate to vendor lua
+Task #6935: unittests: convert tests to new FAIL/PASS API - src/app-layer-htp.c
+Task #6888: contrib: remove obsolete items from contrib
+Task #6818: rust: snmp-parser 0.10.0
+Task #6817: rust: kerberos-parser 0.8.0
+Task #6769: libhtp 0.5.47
+Task #6748: doc: mention X710 RX descriptor limitation
+Task #6712: dependencies: completely remove nss
+Task #6705: build-info: remove obsolete "rust support" line
+Task #6605: flash decompression: update/remove deprecation warnings
+Task #6603: pgsql: don't log password msg if password disabled
+Task #6586: mpm/ac-bs: remove implementation
+Task #6577: pgsql: add cancel request message
+Task #6544: logging: deprecate syslog
+Task #6543: logging: deprecate http-log
+Task #6542: logging: deprecate tls-log
+Task #6488: plugins: add example plugins to the suricata source tree
+Task #6432: tracking: autofp capture stalls due to packetpool depletion
+Task #6427: runmodes: remove reference to auto modes
+Task #6360: detect/analyzer: add more details for the icmp_id keyword
+Task #6355: detect/analyzer: add more details for the tcp.mss keyword
+Task #6354: detect/analyzer: add more details for the tcp ack keyword
+Task #6353: detect/analyzer: add more details for the tcp seq keyword
+Task #6352: detect/analyzer: add more details for the tcp window keyword
+Task #6318: unittests: convert tests to new FAIL/PASS API - detect-engine-address-ipv4.c
+Task #6312: detect/analyzer: add more details for the flow.age keyword
+Task #6309: detect/analyzer: add more details for the flowbits keyword
+Task #6287: suricatasc: rewrite in rust
+Task #6209: libhtp 0.5.46
+Task #6107: unittests: convert tests to new FAIL/PASS API - util-memcmp.c
+Task #6050: base64: make a fuzz target
+Task #5626: doc: document file.data
+Task #5588: ips/tap: don't allow mixed tap and ips modes
+Task #5053: app-layer: dynamic alproto IDs
+Task #4742: build: make the auto-generated config.h not conflict with other config.h
+Task #4698: lib: Example program to bootstrap Suricata (an alternate main() for Suricata)
+Task #4683: detect: remove sigmatch_table in favor of a dynamic storage option
+Task #4105: plugins: Create template capture source plugin
+Task #4103: plugins: convert an app-layer to use the plugin API (snmp)
+Documentation #7540: doc/userguide: fix typo
+Documentation #7383: userguide: fix typo
+Documentation #7262: doc: remove mentions to suricata-6
+Documentation #7260: userguide/config: fix consistency of dashes instead of underscores
+Documentation #7153: devguide: document adding a detection plugin
+Documentation #7150: devguide: document adding a logging plugin
+Documentation #7149: devguide: document adding a app-layer plugin
+Documentation #7031: userguide: document SignatureProperties sigtype
+Documentation #6911: manpages: use consistant date based on release and/or git commits
+Documentation #6908: userguide: document how to verify tar.gz signature
+Documentation #6781: http: document duplicate headers concatenation handling
+Documentation #6725: document pcap file variables
+Documentation #6708: userguide/payload: fix explanation about bsize ranges
+Documentation #6686: docs: port userguide build instruction changes from master-6.0.x
+Documentation #6685: userguide: explain noalert keyword
+Documentation #6629: docs: fix byte_test examples
+Documentation #6628: userguide: document generic aspects of integer keywords
+Documentation #6599: docs: update eBPF installation instructions
+Documentation #6589: docs: fix broken bulleted list style on rtd
+Documentation #6570: remove references in docs mentioning prehistoric Suricata versions
+Documentation #6568: devguide: document backports policies and process
+Documentation #6552: doc: add tcp timeout fix to upgrade guide
+Documentation #6548: http2: http.stat_msg - note about HTTP/2 behavior
+Documentation #6445: userguide: explain what flow_id is
+Documentation #6076: eve/schema: document quic
+Documentation #5651: detect/bsize: format should specify operators
+Documentation #5494: userguide: update tls eve-log fields 'not_before' and 'not_after'
+Documentation #5393: devguide: move github workflow document from redmine into devguide
+Documentation #5088: detect/file.name: keyword is not documented
+Documentation #4359: docs: elaborate documentation for rule profiling
+Documentation #3015: userguide: document "tag" keyword
+
7.0.2 -- 2023-10-18
Security #6306: mime: quadratic complexity in MimeDecAddEntity