OSSEC changelog (4.5.0 — unreleased) support@atomicorp.com
Release Maintainers
Scott R. Shinn (https://www.atomicorp.com)
Contributors on this release
- @atomicturtle
Release Notes
Unrelease 4.5.0 changes
General
- @atomicturtle - Build
ossec-authdwith OpenSSL 4. The certificate IP check uses the ASN.1 string accessors, and the SSL context is TLS 1.2 throughTLS_method()becauseTLSv1_2_method()is gone - @atomicturtle - Keep the device hostname from agent-forwarded syslog lines for
<hostname>matching; expose the OSSEC agent asagent_name/<agent_name>, match log paths with<location>/<location_pcre2>, and keep JSON/diff keyed on the agent identity (#1668) - @atomicturtle - Follow-up fixes from review of the 4.4.0 changes: Solaris
ginstallis required up front, remoted readsnotify_timeat startup, date-based logcollector reopen honors the open-attempt limit, Windows wildcard paths stay literal, the agent-table upgrade constraint is limited toagent, the Windows install ACL is reset before the allow-list,agent-authaccepts either path separator, and realtime FIM stops retrying a file that stays unreadable - @atomicturtle - Rotate
ossec.logon the daily monitord pass intologs/ossec/YYYY/Mon/ossec-DD.log, then sign and compress it with the alert logs. Drop it from logrotate socopytruncateno longer races that file (#704) - @atomicturtle - Ignore the Windows Application Experience
:Win32App_1NTFS stream in rootcheck (#758) - @atomicturtle - Honor
monitord.notify_timefor agent_control status and remoted send eligibility, not only monitord disconnect alerts (#874, #1022) - @atomicturtle - Allow CDB
<list>matching on decodedsystem_nameviafield="system_name"(#628) - @atomicturtle - Windows agent install ACL allows only SYSTEM and Administrators (#182)
- @atomicturtle -
ossec-regex -ptests a pattern as PCRE2, with the same flags as a<pcre2>rule (#1845) - @atomicturtle - Extract User-Agent (and action/srcport) from default IIS W3C access logs (#989)
- @atomicturtle - Allow silent Windows agent installs to skip IIS logging and integrity checking via
/IISLogging=noand/IntegrityChecking=no(#1000) - @atomicturtle - Optional
<report_new_files_as_changed>so post-baseline FIM creates are stored as!+++and listed bysyscheck_control -i(#1831)
Security Fixes
-
@atomicturtle - Keep content hashes out of the
report_changesdiff command line.seechanges_addfile()named its temporary links after the SHA-256 of the old and new snapshots and passed those paths tosystem("diff ..."), so any local user could read the unsalted hash of monitored (including root-only) files fromps//proc. The links are nowsyscheck-changes-<pid>-{old,new,diff}(ANT-2026-FZNF7ML7) -
@atomicturtle - Keep the full file path in Unix FIM messages.
read_file()andrealtime_checksumfile()formatted<checksums> <path>with a stale 916/912snprintflimit into anOS_MAXSTRbuffer, so paths longer than about 757 characters were cut and every file under such a directory reached the manager under one truncated name thatauto_ignorethen muted. Those calls now useOS_MAXSTRlike the Windows branches (ANT-2026-CH7FO833) -
@atomicturtle - Free realtime inotify watch paths when directories disappear.
realtime_adddir()stored every watch path indirtb, butrealtime_process()never removed entries for namelessIN_IGNOREDevents, so a local user who couldmkdir/rmdirunderrealtime="yes"grew rootossec-syscheckdwithout bound.IN_IGNOREDnow deletes and frees the entry, named events skip a missing watch, andIN_Q_OVERFLOWalso purges stale descriptors (ANT-2026-ODWFEHAC) -
@atomicturtle - Rescan realtime directories when the Linux inotify queue overflows.
realtime_process()ignored the kernelIN_Q_OVERFLOWmarker (wd=-1, no name), so events dropped from the shared queue were never logged or recovered until the next scheduled scan. Overflow now logs once and reuses the deferredrt_overflow_schedule()recovery already used on Windows, keepingCHECK_REALTIMEon Linux so lost subdirectory creates still get watches (ANT-2026-NCIMIJXH) -
@atomicturtle - Hash Windows registry values in binary mode so a Ctrl-Z in a value name or string cannot hide later values.
syscheck_sum.tmpwas written and read in text mode, and on Windows the CRT treats0x1aas EOF, so the MD5/SHA1 stopped early and no integrity alert fired. The checksum temp andsyscheckregistry.dbnow use binary opens; keys without Ctrl-Z keep the same digests (ANT-2026-QL3RS46Y) -
@atomicturtle - Skip Windows registry subkeys whose path no longer fits
MAX_KEY.os_winreg_querykey()opened the truncatedsnprintfresult, so when the parent path was already 2047 characters the "subkey" was the parent again and the walk recursed until the syscheck thread stack ran out. Both the open path and theHKEY_-prefixed full name are checked; an over-long key is logged withSK_REG_LONGand ignored (ANT-2026-SI19UF16) -
@atomicturtle - Keep large registry value buffers off the recursive Windows FIM stack.
os_winreg_querykey()held about 38 KB ofRegEnumValuebuffers on every frame, so roughly 55 nested keys under a monitoredwindows_registryentry overflowed the 2 MB syscheck thread and killedossec-agent.exe. Value hashing now runs in a non-recursive helper, and the subkey path buffers are heap-allocated for the walk (ANT-2026-583M5XOX) -
@atomicturtle - Keep the last known FIM hash when a scan yields the
xxxplaceholder (for example a symlink whose target is gone).fim_sum_has_real_change()treats any hash transition involvingxxxas quiet, and callers then stored the new sum, so retargeting a monitored link through a missing path (A →xxx→ B) never compared A with B and raised no rule 550.fim_sum_keep_hashes()now carries real digests over placeholders inc_read_file()andDB_ProcessFoundEntry()before compare and store (ANT-2026-YO3OMSC0) -
@atomicturtle - Stop a crafted rootcheck path from spoofing
SyscheckFilefields.rk_extract_hashes()ended the path at the first quote and took each hash from the firstMD5/SHA1/SHA256label, so a directory name that embeds those tokens could replace the real path and digests inalerts.json. The decoder now keeps only a complete hex triple at the end of Rootkit/Anomaly/Trojaned messages and ends the path at the fixed text in front of it; a truncated hash-less Anomaly message is marked with...so a cut path cannot fake that ending (ANT-2026-0UFTKHQJ) -
@atomicturtle - Forward every complete line from a syslog-over-TCP
recv().ossec-remotedcut at the first newline and parked the rest without scanning again, so lines that shared a segment were glued onto the next segment as one event, or dropped on close, CRLF, or a full buffer. The worker now appends into the incomplete prefix and drains every complete line before the next read (ANT-2026-2BEPXI8W) -
@atomicturtle - Stop daily reports from leaking per alert in
ossec-monitord.os_ReportdStart()left theOS_StrBreak()group array and the top-entry list nodes behind; with reports running in a thread that memory stayed for the life of the daemon. The group array is freed after the loop, and each top-entry list's nodes are released with the hash table (covered with ANT-2026-AVE66YB6) (ANT-2026-M3W3LJEQ) -
@atomicturtle - Bound every plain SMTP socket in
ossec-maildandossec-monitordto 60 seconds per reply or write.OS_Sendmail()read through a barerecv()with no timeout, so a relay that accepted and stayed silent held a sender thread forever. Aftermaild.max_workerssuch threads, no further alert e-mail was sent untilossec-maildwas restarted. A timed-out read fails like any other failed reply and releases the worker (ANT-2026-FR6DKH31) -
@atomicturtle - Keep a timed-out active response listed until its
deletehas exited.ossec-execdforkeddeleteand dropped the entry at once, so the next alert for that address could runaddwhiledeletewas still running. A set-style target such ashosts.denyor a PF table then lost the block, and later alerts skipped the script because execd still listed the address. A request for that same script and address now waits for the in-flightdeleteand is then a new block. A request for a different address does not wait (ANT-2026-8WBHQ0QF) -
@atomicturtle - Keep a backslash-escaped space inside one
ossec-execdargument.OS_Exec()escaped a syscheck file name, butExecdStart()cut the request at every space and passed the pieces toexecv(). A space in a monitored name became an extra argument of a root script that expectsfilename, for example/etc/shadowor-f. The name still arrives escaped (/srv/uploads/x\ /etc/shadow). A location that ends in a backslash is dropped, because it would join with the file name. A location that contains a backslash and a space stays one argument. Windowsossec-execdalready keeps the remainder of the request as one quoted field (ANT-2026-Z12L5BYR) -
@atomicturtle - Give
ossec-execdone spelling of a literal address before it compares, stores, or runs a block.2001:DB8::7and2001:db8::7were two timeouts, sopf.shdeleted the one PF entry at the first timeout while execd still counted the other spelling as blocked. Later alerts then skipped the add. A::ffff:address is handed to the script as its IPv4 form, which is what analysisd already does. Host names,-, CIDR, and a leading!are unchanged (ANT-2026-PTTDW7PW) -
@atomicturtle - Keep the closing quote when
ossec-dbdstores a longsrcipordstip.sql_nullable_str()wrote the address into a 49-byte buffer, so 47 characters or more cut off the quote and both MySQL and PostgreSQL rejected theINSERT. The address is now cut to the 46-character column width and the alert is stored. The full log line is unchanged (ANT-2026-SEE999RQ) -
@atomicturtle - Widen the MySQL location id from
SMALLINT UNSIGNEDtoINT UNSIGNED.location.idstopped at 65,535, so one agent sending a new location per alert filled the counter andossec-dbdthen dropped every alert whose location was not already stored. Existing databases stay 16-bit untilupgrade-location-id-mysql.sqlis applied. PostgreSQL already usesSERIAL(ANT-2026-C82AB02V) -
@atomicturtle - Do not follow a symlink when
ossec-dbdreadsqueue/agent-info. That directory belongs toossecrandossec-dbdruns as root, sostatandfopencopied the first line of the link target into the agent table, including a root-only file. A keepalive is stored only when it is one regular file (ANT-2026-5Z4OX04E) -
@atomicturtle - Do not follow a symlink when
manage_agentsremoves an agent database.delete_syscheck()anddelete_rootcheck()opened fixed names underqueue/syscheckandqueue/rootcheckwithfopenin write mode. Those directories belong toossec, andmanage_agentsstill runs as root, so a link planted there truncated or created any file under the install, includingetc/ossec.conf. The cleanup now truncates only a regular file with a single link and does not create a missing name (ANT-2026-AJJELLSQ) -
@atomicturtle - Stop one wildcard
<location>from opening every match.logcollector.max_wildcard_files(default 256) keeps the first matches and logs the rest.ossec-logcollectorraises its open-file limit to the number of configured files plus 128, so several wildcard blocks still leave room for later logs, commands, andossec.log. A pattern that already matches more than 256 files monitors only the first 256 until the option is raised (ANT-2026-9KNXMD94) -
@atomicturtle - Read a date-based log to its current end before the expanded name changes.
update_fname()was closing the old file at the start of the poll, so lines written in the lastloop_timeoutnever reachedossec-analysisd. The lines are read while the location is still the old name. A name that has not changed is left alone (ANT-2026-YGX1KKKT) -
@atomicturtle - Forward the first JSON
syslog_outputalert written afteralerts.jsonrotates or is truncated.jqueue_next()leftJQUEUE_READ_FAILEDset when the new file was still empty, and the next call parsed a good alert and deleted it. The alert stayed inalerts.jsonand still drove mail, the database, and active response (ANT-2026-NCEH7RB6) -
@atomicturtle - Keep real
syslog_outputfields whose text happens to look like a placeholder. The default, CEF, and Splunk formatters dropped a value when a single character lined up with(none),(no user), orunknown, so a user namedanna, a hostinn.example.org, or a location starting with(nnever reached the receiver. Only the exact strings(none)and(no user)are left out. A user namedunknownis still forwarded (ANT-2026-9Q8LR4NY) -
@atomicturtle - Flatten CR and LF in every
syslog_outputalert, including UDP. TCP already replaced them with spaces so one alert stayed one frame; UDP sent the breaks, and a receiver that splits a datagram at newlines could store a line the manager never raised. UDP does not add a trailing newline. Receivers that relied on the line breaks inside a UDPdefaultorsplunkmessage, present since 3.4.0, now see spaces (ANT-2026-Q0UYTPGC) -
@atomicturtle - Do not match a
<field>rule when the decoder has no field table.OS_CheckIfRuleMatch()readfields[]for every such rule, and that table exists only for a decoder with<order>, so one log line stoppedossec-analysisd. A decoder that has the named field still matches (ANT-2026-R3ZY7CWM) -
@atomicturtle - Decode a certificate common name to UTF-8 before
agent-auth -vcompares it with the manager host name.asn1_to_cstr()was copying the raw content bytes, so a BMPString or UniversalString whose bytes spelled the host name was accepted. An IA5String, PrintableString, or UTF8String host name is unchanged (ANT-2026-5BG289FD) -
@atomicturtle - Stop the Windows event-log message-DLL cache from storing a new entry for every letter-case spelling of one installed source.
el_getEventDLL()still opens the registry with the name as written, and stops storing new entries after 4096. The extra key copy in that cache and in the Vista security descriptions is no longer leaked (ANT-2026-ZNO1MXTC) -
@atomicturtle - Update the inotify watch path when a realtime directory is renamed. The watch follows the inode, so
realtime_adddir()was keeping the first name it stored and later events were built under a path that no longer exists. A stored name that still reaches the same directory, such as a symlink, is left as it is (ANT-2026-16QLZ097) -
@atomicturtle - When realtime syscheck finds a directory where it had cached a file, report the file deleted and scan the directory.
c_read_file()was reporting that directory as a changed file, so files created inside it were invisible to realtime FIM until the next scheduled scan. Thereport_changessnapshot for the old file is removed with that deletion, before the new directory is scanned (ANT-2026-DXPIRJGM) -
@atomicturtle - Read a newly opened daily alerts file from the start in
Read_FileMon().csyslogd,maild, anddbdwere seeking to the end when the day changed or the file was not open yet, so alerts written in that window were never mailed, forwarded, or stored. A daemon start still tails the file (ANT-2026-7ODKFI8F) -
@atomicturtle - Report an agent disconnect as
(name) ip->ossec-monitordso an IPv6 address is not cut at its first colon. Rule 504 now fires for an agent enrolled with an IPv6 address, and the alert is attributed to that agent. The location string changes for every agent, fromname-ip->ossec-monitordto(name) ip->ossec-monitord(ANT-2026-U64THXI1) -
@atomicturtle - Skip a Windows wildcard
<location>name thatFindFirstFileAreturns with*or?in it. The agent is built withoutUNICODE, so a character outside the ANSI code page comes back as?and the expansion feeds that name back in as another pattern, hanging logcollector at service start. Those names cannot be opened through the ANSI API. A\\?\prefix is still not a wildcard (ANT-2026-WJND95HE) -
@atomicturtle - NUL-terminate the CDB value copied by
address_match_key_value(calloc(vlen + 1)in both the exact-address and subnet lookups), so an anchoredcheck_valueis compared against the list entry and not the byte after the allocation (ANT-2026-WI6TBPFX) -
@atomicturtle - File daily-report top entries in hash tables and sort each table once, and grow the kept-alert array geometrically, so a day of distinct locations, users, or source addresses cannot stall
ossec-monitordafter midnight (ANT-2026-AVE66YB6) -
@atomicturtle - Create
var/runpid files withO_EXCLandfchmodthe descriptor, so a process in grouposseccannot make a root daemon append to orchmodan arbitrary file through a symlink planted in the group-writable pid directory (ANT-2026-1O4BCXPR) -
@atomicturtle - Keep one
report_changessnapshot per file and stop copying oncequeue/diffreachessyscheck.diff_quota_size(default 1 GiB).state.*anddiff.*are removed after the alert is read, and a deleted file's snapshot is removed with it, soreport_changescannot fill the disk (ANT-2026-4T9F7XIQ) -
@atomicturtle - Look each syscheck directory entry up on the directory that was opened (
fstatat/openat/fdopendirwithO_NOFOLLOW), and do not follow a symlink below a configured directory on the realtime path, so a local user cannot redirect the walk onto root-only files (ANT-2026-MBH20U16) -
@atomicturtle - Stop
ossec-syscheckdfrom hashing or fully reading a file pastsyscheck.file_max_size(default 1024 MB; one MD5+SHA-1+SHA-256 pass) and from copying areport_changessnapshot pastsyscheck.diff_max_size(default 10 MB). Rootcheck policy reads stop after 100000 lines, and/dev/shmis not read unless<readall>is set, so one sparse file cannot stall FIM and rootcheck (ANT-2026-J8XF7LCX) -
@atomicturtle - Open
report_changessnapshots and live-file hashes via a per-componentopenat(O_NOFOLLOW)walk (fopen_regular_nofollow/OS_SHA256_File_nofollow), and refuse leaf symlinks inseechanges_addfile, so a local user cannot redirect diffs at a root-only file through a leaf or parent symlink (ANT-2026-2138NB95) -
@atomicturtle - Pause rootcheck's hidden-process scan only for PIDs that do not add up (and at most
rootcheck.sleep_aftertimes per pass, default 32), so idle threads cannot stall realtime FIM forrootcheck.sleepseconds each (ANT-2026-AE2I21JQ); look up directory entries viafstatat/openat/fdopendiron the open parent so a local user cannot hang the scan with a symlink ring (ANT-2026-W5QJUUX2) -
@atomicturtle - On manager/local installs, open rootcheck
rootkit_files/rootkit_trojans/system_auditpolicies only when they are regular, root-owned, and not group/other-writable (O_NOFOLLOW); install thoseetc/sharedtexts asroot:ossec0640(agents unchanged) so grouposseccannot replace a policy and read root-only files via alerts (ANT-2026-B5Y9PIU1). Existingossec-owned or group-writable custom policies are ignored until fixed. -
@atomicturtle - Shell-quote kernel-reported interface names in rootcheck
run_ifconfig()(and refuse empty / leading--names) soCAP_NET_ADMINcannot inject commands throughsystem(ifconfig …)(ANT-2026-9UQVLIX8); do not splitreaddir()paths at,inrk_check_dir()so a directory named,cannot recurse forever (ANT-2026-CDYKRRHO) -
@atomicturtle - Drain every complete alert from
alerts.login oneossec-logcollectorpoll for<log_format>ossecalert</log_format>(hybrid forwarder), so a burst cannot leave unread records that are lost on day rotation; still honorlogcollector.max_linesper visit (ANT-2026-1HUE1BMJ) -
@atomicturtle - Stop
ossec-syscheckdfrom hanging on a FIFO planted underreport_changes/ FIM / rootcheck paths:OS_SHA256_File/OS_MD5_SHA1_File/seechanges_dupfile/rk_check_file/os_stringusefopen_regular(),seechanges_addfilerefuses non-regular files, andis_file/read_sys_fileopen withO_NONBLOCK(ANT-2026-KZAJSOET) -
@atomicturtle - Store an agent's
crypto_methodinReadSecMSGonly after the datagram authenticates, so an unauthenticated!id!:/#AES:frame cannot flip manager-to-agent AES/Blowfish framing and drop AR /agent_control/merged.mguntil the next keep-alive (ANT-2026-2NLM3GPL) -
@atomicturtle - Release
ossec-remotedsyslog TCP workers from dead or idle clients: report EOF as 0, enable TCP keepalive (TCP_KEEPIDLE= read timeout), stop retryingETIMEDOUT, and close a quiet connection only while the worker pool is exhausted so a queued sender can be served (ANT-2026-QY1SHLVV) -
@atomicturtle - Bound
ReadSecMSGzlib inflate to the room left in the receive buffer after!<id>!/#AES:prefixes (buffer_max), so an enrolled agent cannot write pastossec-remoted's stackbufferwith an oversized compressed payload (ANT-2026-739QMECR) -
@atomicturtle - Rate-limit
ossec-remotedpre-auth rejection logging (denied IP, bad header, unknown ID, andReadSecMSGdecrypt/format failures): up to 20 lines per listener per minute plus a skipped-count summary, so an unauthenticated sender cannot filllogs/ossec.log(ANT-2026-JA2NXEW1) -
@atomicturtle - Persist each agent's receive counter to
queue/ridsbeforeOS_FreeKeys(client.keysreload) and on orderlyossec-remotedshutdown, so a keyless!id!after a keys mtime change (or a restart) cannot rewindverify_msg_idand replay captured agent datagrams (ANT-2026-FBJ3LA25) -
@atomicturtle - Escape leading dots in
ossec-maild/ossec-monitordmail bodies (RFC 5321 4.5.2 for native SMTP;.for sendmail-like pipes) so a lone.log line cannot endDATAearly, drop later alerts in the batch, or turn them into SMTP commands (ANT-2026-RXKNZJ1N;USE_CURL=yesalready safe) -
@atomicturtle - Keep granular
email_alertsmatches per alert inossec-maildand send one grouped mail per recipient set (OS_SplitMailBatch), so anevent_location/group/level recipient no longer receives other agents' alerts that share the same grouping window. One batch can become several SMTP transactions, each counted againstemail_maxperhour(ANT-2026-CZG2BRKO) -
@atomicturtle - Keep
do_not_groupgranular recipients whenossec-maildcommits a waiting batch: restore the pre-pthread clear loop so parkedDONOTGROUPmarks becomeFULL_FORMATinstead of being wiped (ANT-2026-X2IU8BSU) -
@atomicturtle - Stop
ossec-logcollectorfrom hanging when a monitored log is replaced by a FIFO or device: rotation usesstat()by name (no throwawayfopen), and non-syslog-pipeopens go throughfopen_regular()(O_NONBLOCK|O_NOCTTY, regular files only). Installations that pointed a non-pipelog_formatat a FIFO must switch that entry tosyslog-pipe(ANT-2026-U9RISGGM) -
@atomicturtle - Include the user argument in
ossec-execd's timeout-list duplicate check (and in therepeated_offenderskey), sodisable-accountfor one account cannot suppress lockouts for other accounts while IP is-(ANT-2026-2LGOJR12) -
@atomicturtle - Drop incomplete active-response requests in
ossec-execdbefore the timeout-list compare (avoid NULLstrcmpon a missing IP). InOS_Exec, if the 1023-byte request would clip, retry without location/filename so IP-based responses still run, and only ignore the request when the name/user/IP prefix itself cannot fit (ANT-2026-SNXGRHGA) -
@atomicturtle - Escape
alertid(and MySQLtld/srcgeoip) inossec-dbdOS_Alert_InsertDBlike the other string columns, and boundalertidto the schemaVARCHAR(30), so a forged** Alertline cannot inject SQL into the alertINSERT(ANT-2026-SINT56KO; srcip/dstip already escaped viasql_nullable_str, cf. Wazuh GHSA-6j39-726h-fx6p) -
@atomicturtle - Escape Splunk and CEF
syslog_outputfields inossec-csyslogd: strip", double\, and turn CR/LF into spaces in Splunkkey="value"values, and runsrc=/shost=/dhost=and hash extensions throughcefescape(), so logged usernames or addresses cannot inject extra SIEM key/value pairs (ANT-2026-RXUWSL9Z) -
@atomicturtle - Skip the syscheck integrity-DB linear scan on an index miss when the per-agent hash index is complete (mark incomplete only on calloc/OSHash_Add/read failures), so one agent cannot stall analysisd by reporting new file names (ANT-2026-8STI0Q1E)
-
@atomicturtle - Hash
OSHashkeys over a prime field and seed the multiplier fromrandombytes, so a seed-independent Thue-Morse collision family can no longer force every FTS (and other) key into one chain (ANT-2026-3WKK50NE) -
@atomicturtle - Cut the maild subject host at the
->separator (notstrchr('>')-1), so a location that starts with>cannot write one byte before the heap string and abortossec-maild(ANT-2026-H2JMYHXZ) -
@atomicturtle - Fix
read_syslogover-long line handling: drop the always-truestrchr(str, '\\0')branch from #913, detect full reads by byte count, map embedded NULs to spaces, and skip mid-line remainders across polls so a long access-log field cannot inject a forged standalone event (ANT-2026-RNCE3SO7) -
@atomicturtle - Roll analysisd daily logs forward only (ignore a match-shard event older than the last rollover unless the clock was set back), and reopen the alerts file in
Read_FileMonwhen its path no longer names the open inode (asjqueue_nextalready does for JSON), so a late pre-midnight backlog cannot unlink today's empty alerts file and leave csyslogd/maild/dbd reading a deleted inode for the rest of the day (ANT-2026-35JW8GHU) -
@atomicturtle - Stop
GetAlertDatafrom treating event text as alert headers (whole-line reads, headers only whereOS_Logwrites them, no blank line inside a record, and NULLgroupguards in csyslogd/maild/reportd), so a long access-log line or correlation previous-output cannot forge rule/level or crash output daemons (ANT-2026-KTGCYZ58) -
@atomicturtle - Drop the blocking reverse/forward DNS lookup from the
is_valid_crawlercompiled rule (31140): an unanswered PTR for a 4xx client address stalled an analysisd rule-matching thread for the resolver timeout per log line (ANT-2026-S3EU4A19) -
@atomicturtle - Prefix analysisd accumulator keys with the OSSEC agent name (keeping the log hostname), so one agent cannot forge another agent's OpenLDAP
srcip/uservia a shared device hostname after #1668 (ANT-2026-ZQN8MYKG) -
@atomicturtle - Make
queue/diffsticky root:ossec with a root-ownedlocal/, and refusereport_changesstore directories that are links or writable by others, so userosseccannot plant symlinks that rootossec-syscheckdfollows (ANT-2026-96VSXF8B) -
@atomicturtle - Retire
<syscheck><prefilter_cmd>(prelink-era hash filter): ignore the tag with a warning so upgrades keep loading, and remove thepopen()sink that let a crafted file name run as root (ANT-2026-3VN001L2; supersedes ANT-2026-D7ZVXNZP) -
@atomicturtle - Give each
<nodiff>node its own append index (like<ignore>), so plain andsregexentries no longer share a stale counter that could heap-overflow or silently drop rules (ANT-2026-C186EP5N) -
@atomicturtle - Sanitize
;in ossecalert-forwarded alert fields and boundsrcip/userso a logged username cannot inject a secondsrcip:on the central manager (ANT-2026-8TB11KJO) -
@atomicturtle - Bound syscheck
read_dir()path joins so a near-PATH_MAXdirectory cannot wrap the entrystrncpysize and crashossec-syscheckd(ANT-2026-1UF4D24F); skip too-long entries and compose withsnprintf -
@atomicturtle - Create Unix-domain queue sockets with their final mode via umask around
bind()instead of a pathchmod()afterwards, so a raced symlink in a group-writable queue dir cannot make root-owned files group-writable (ANT-2026-1EAZN37N) -
@atomicturtle - Store analysisd syscheck index checksum prefixes on the heap instead of embedding
OS_MAXSTRper file so one agent cannot pin ~6 KB of manager RAM per new path (ANT-2026-VUTSB5RB / #2373) -
@atomicturtle - Fix Windows
w_ref_parent_folderso a mixed\..//..namepath cannot bypass the active-response path check (ANT-2026-1IXHWDKW / CVE-2018-19666); reject path separators and..in merged.mg entry names on merge and unmerge -
@atomicturtle - Guard empty syscheck filename stripping in
GetAlertDataso a craftedIntegrity checksum changed for: 'line cannot underflow the heap (CVE-2026-26204) -
@atomicturtle - Disable TLS renegotiation in the shared authd/agent-auth
get_ssl_context(SSL_OP_NO_RENEGOTIATION, with an info-callback fallback on older OpenSSL/LibreSSL) (#2100)
Bug Fixes
- @atomicturtle - Size analysisd auto thread pools from cgroup CPU quota and scheduler affinity (
os_get_nproc), not hostsysconf(_SC_NPROCESSORS_ONLN), so Docker/Kubernetes CPU limits do not inflate memory (#2373) - @atomicturtle - Refuse merged-file entry names that contain
..inUnmergeFilesso a craftedmerged.mgcannot write outside the agent shared directory - @atomicturtle - Parent SSH CRC-32 rule 5714 on the sshd group and count one prior 5713, so the compensation line alerts instead of falling through to rule 1002
- @atomicturtle - Give each Unix-socket bind, connect, and recv its own address so remoted's active-response bind cannot collide with the analysisd queue and exit with
Address already in use - @atomicturtle - Set Windows localfile
glob_setonly after a successful wildcard expansion so a failed first pattern does not wrappland abort config read (#1954) - @atomicturtle - Ship an agent-only logrotate for
ossec.log; agents do not run monitord (#704) - @atomicturtle - Skip Windows Subject machine accounts (
name$) when decoding Account Name so 4624/4625 keep the logon user (#1959) - @atomicturtle - Read the 4-character
!+++FIM new-file marker inDB_ProcessFoundEntryandsyscheck_controlso create rows do not false-alert or lose the marker (#1831) - @atomicturtle - Stage bundled PCRE2 under
pcre2_local/so macOS case-insensitive filesystems do not collide with the tarballINSTALLdocs file (#1957) - @atomicturtle - Retry a realtime integrity check when the file is still locked or briefly missing, so emptying a file alerts without waiting for the next edit (#1386)
- @atomicturtle - Add Windows
<localfile>wildcard expansion (*/?, including multi-segment paths) and rotate date-based locations when the fullstrftimename changes so%H/%Mwork (#1954) - @atomicturtle - PR 2333 - Fix Windows registry syscheck on 64-bit hosts:
windows_registrysupportsarch="32bit|64bit|both"withKEY_WOW64_*access; the 32-bit view keeps the legacy DB path and the 64-bit view is prefixedarch64:(collision-free). Default view is 32-bit regardless of agent bitness; unknownwindows_registryattributes are rejected (#954) - @atomicturtle - Take the IIS default W3C
sc-statusfrom the fields that follow it, so a referer of/404or200and a three-digitsc-substatusare not the response code (#989) - @atomicturtle - Reject an ossec-dbd INSERT whose base query cannot fit, and reserve the SQL buffer's terminating NUL when capping
full_log(#1959) - @atomicturtle - Bound agent decrypt backoff so a burst of bad or empty replies sleeps once per drain and still fails over (#1944)
- @atomicturtle - Log
GetSecurityInfo's return code when a Windows FIM owner lookup fails (#1581) - @atomicturtle - Apply both exact and sregex
registry_ignoreentries so default\Enum$is not skipped (#851) - @atomicturtle - Scan realtime-created paths with
read_fileso short-lived files do not flood ossec.log withError opening directory(#1792) - @atomicturtle - Extract Windows 4625 UPN Account Name (skip Subject
-) and budget ossec-dbd INSERT fields so oversized alerts cannot truncate mid-quote (#1959) - @atomicturtle - Back off when the agent cannot decrypt a server reply so a bad or missing key cannot peg a CPU core (#1944)
- @atomicturtle - Stop truncating alert full_log / previous-output lines at 1256 bytes in alerts.log (#473)
- @atomicturtle - Stop Windows CreateFile/GetSecurityInfo failures from becoming false syscheck size-change alerts (#1581)
- @atomicturtle - Drop rule 31107 so search URLs no longer suppress SQLi/XSS/web-attack alerts (#1078)
OSSEC changelog (4.4.0) support@atomicorp.com
Release Maintainers
Scott R. Shinn (https://www.atomicorp.com)
Contributors on this release
- @atomicturtle
- @ddpbsd
- @bearxy123
- @AdUser
Release Notes
OSSEC 4.4.0 adds three main capabilities; other enhancements and fixes are listed below.
- Windows FIM attributes and ACLs — Opt-in
check_attrsfor Hidden/System/attribute change alerts andcheck_aclfor NTFS DACL/ACE matrix alerts (#1352, #2285). - GeoIP via libmaxminddb — Replaces EOL GeoIP Legacy with GeoLite2 MMDB lookups, plus ASN/country enrichment and GeoIP IDS rules (#1828, #2259).
- JSON syslog alerts —
ossec-csyslogdforwards analysisd JSON alerts soagent_nameis a first-class field.jsonoutstays on when the XML tag is omitted; alerts rotation remains with monitord (#1907, #2302).
General
- @atomicturtle - Add opt-in Windows FIM
check_attrsfor Hidden/System/attribute change alerts (#1352) - @atomicturtle - Add opt-in Windows FIM
check_aclfor NTFS DACL/ACE matrix alerts - @ddpbsd / @atomicturtle - PR 1828 - Replace EOL GeoIP Legacy with libmaxminddb (GeoLite2 MMDB) for analysisd GeoIP
- @atomicturtle - GeoIP IDS rules (multi-country auth, impossible-travel) plus ASN/country enrichment; SSH invalid-user dstuser extraction; feed if_matched_group when sid_prev_matched is also set
- @atomicturtle - PR 2302 - Forward analysisd JSON alerts over syslog so agent_name is a first-class field; keep jsonout on when undeclared
Bug Fixes
- @AdUser / @atomicturtle - PR 2106 - Stop Dovecot lip= from capturing a trailing comma as dstip
- @bearxy123 / @atomicturtle - PR 2107 - Check cdb mmap failure with MAP_FAILED instead of DJB x+1 idiom
- @atomicturtle - PR 2303 - Stop remoted from writing the sender counter into agent 0 rids on key reload (#2065)
- @atomicturtle - PR 2304 - Stop remoted from mapping a v4 local_ip onto a dual-stack IPv6 socket (#1611)
- @atomicturtle - PR 2308 - Use a four-part win32ui manifest version so the Windows agent UI can start (#2307)
OSSEC changelog (4.3.0) support@atomicorp.com
Release Maintainers
Scott R. Shinn (https://www.atomicorp.com)
Contributors on this release
- @atomicturtle
- @reyjrar
- @hyn172
- @lazyp
- @awiddersheim
- @doke2
- @bchurchill
- @alex-front
- @crlorentzen
- @hcw2016
- @AdUser
Release Notes
OSSEC 4.3.0 adds three main capabilities; other enhancements and fixes are listed below.
- FIM maintenance mode — Per-agent mode via
agent_control -M(enable,disable,status,endwith-u <id>). While enabled, syscheck accepts file changes into the baseline without generating integrity alerts.endrestarts syscheck/rootcheck and clears maintenance when that scan finishes (#677, #1289, #1681). - TCP/TLS
syslog_output—ossec-csyslogdsupports TCP and optional TLS (protocol,tls,tls_verify,tls_ca) in addition to UDP. Alert payloads (default/CEF/JSON/Splunk) may use up toOS_MAXSTRinstead of a 2048-byte limit (#1762). - ModSecurity audit logs — Collect libmodsecurity serial audit logs with the
modsec-auditlocalfile format, and decode nginx ModSecurity error-log events with new rules (#1390).
General
- @atomicturtle - Add optional TCP and TLS to syslog_output (ossec-csyslogd) (#1762)
- @atomicturtle - Raise csyslogd syslog/CEF/JSON alert buffer from 2048 to OS_MAXSTR (#1762)
- @atomicturtle - Add Asterisk IPv6 denied decoder so srcip omits square brackets (#1892)
- @atomicturtle - Allow manage_agents
-f -to bulk-load agents from stdin (#459) - @atomicturtle - Ignore deleted agents in list_agents/get_agents; fix OS_RemoveAgent agent-info cleanup (#244)
- @atomicturtle - Support
###trailing comments in CDB list text files (#1527) - @atomicturtle - Use a dedicated OSSEC iptables chain for firewall-drop active response (#678)
- @atomicturtle - Add ModSecurity / libmodsecurity serial audit log support (
modsec-auditlog format) plus nginx error-log ModSecurity decoders/rules (#1390) - @atomicturtle - Add per-agent FIM maintenance mode via agent_control (#677, #1289, #1681)
- @atomicturtle - Detect Postfix SMTP connect aborts and escalate by source IP (#1897)
- @atomicturtle - Match Snort [Drop] fast alerts in the snort decoder (#1926)
- @atomicturtle - Decode named client IPs with optional BIND @cookie prefix (#1927)
- @atomicturtle - Add muhstik to blacklisted user-agent rule 31508 (#1387)
- @atomicturtle - Reject dangerous/ambiguous syscheck_control flag combinations such as
-r -u(#462) - @hyn172 / @atomicturtle - PR 504 - Add Windows interactive (logon type 2) success detail rule 18262
- @awiddersheim / @atomicturtle - PR 578 - Refactor Unix MQ start/send retry loops without changing wait budgets
- @bchurchill / @atomicturtle - PR 633 - Enable Linux compile/link hardening by default (PIE, FORTIFY, stack protector, full RELRO)
- @alex-front / @atomicturtle - PR 1036 - Add cPanel/cpsrvd decoders and rules; tighten postgresql_log so it does not steal cPanel logs (#1132)
- @hcw2016 / @atomicturtle - PR 1166 - Backup agent state before remove/force-delete and alert on duplicated IP
Bug Fixes
- @atomicturtle - PR 2295 - Fix syscheck queue/restart races and honor FIM
<frequency>under realtime - @atomicturtle - Make PCRE2 JIT optional (soft-fail compile, match via pcre2_match) so analysisd starts on macOS (#2040)
- @atomicturtle - Restore ossec-lua binary names after Lua 5.4.7 upgrade (#2245)
- @atomicturtle - Accept AR expect
username(alias ofuser), fall back to srcuser, and document fixed script argv (#2104) - @atomicturtle - Decode cPanel login lines from webmaild/whostmgrd/cpaneld as well as cpsrvd (#1132)
- @atomicturtle - Avoid FIM false positives from xxx hash placeholders and checksum read failures (#1590, #1704)
- @atomicturtle - Match web-accesslog URLs that contain spaces; do not treat POST as a simple ignored request (#914, #922)
- @atomicturtle - Require more attack-group context and same_location for rule 40501 (#1082)
- @atomicturtle - Stop treating MJ12bot as a malicious user agent in rule 31508 (#1317)
- @atomicturtle - Ignore snap and /dev/loop df 100% alerts under rule 532 (#1418)
- @atomicturtle - Label /var/ossec/logs as var_log_t for logrotate and allow logrotate_t on ossec_log_t (#1948)
- @atomicturtle - Replace dead Honeynet Project link in rule 40601 (#2111)
- @atomicturtle - Limit PHP CGI rule 31110 to .php and cgi-bin URLs (#1101)
- @atomicturtle - Ignore ProFTPD sreaddir buffer growth as a false positive (#1015)
- @atomicturtle - Pass CFLAGS/LDFLAGS into bundled ossec-lua/ossec-luac via MYCFLAGS/MYLDFLAGS (#1568)
- @atomicturtle - Open csyslogd syslog_output sockets before chroot so hostnames work without losing OS_Connect multi-address fallback (#1744)
- @atomicturtle - Emit a single To: plus one comma-separated Cc: for granular/extra recipients so ISPs stop rejecting duplicate To headers (#1901)
- @atomicturtle - Strip Recv-Q/Send-Q from default netstat listen check to stop rule 533 false positives (#495, #2063)
- @reyjrar / @atomicturtle - PR 235 - Canonicalize Windows FIM paths so realtime and scheduled scans use the same slash form
- @lazyp / @atomicturtle - PR 564 - Skip leading XML declarations (and UTF-8 BOM) in OS_ReadXML
- @AdUser / @atomicturtle - PR 2105 - Insert SQL NULL for missing alert src_ip/dst_ip in os_dbd (not the string 'NULL')
- @doke2 / @atomicturtle - PR 663 - Log AGENTCONFIG path when reading shared agent.conf in syscheckd
- @crlorentzen / @atomicturtle - PR 1124 - Fix PIX/ASA 6-308001/605004/605005 field extraction (masked/empty users, remote IP)
OSSEC changelog (4.2.0) support@atomicorp.com
Release Maintainers
Dan Parriott
Scott R. Shinn (https://www.atomicorp.com)
Contributors on this release
- @atomicturtle
- @Hu6li
Release Notes
This release focuses on analysisd scalability and broader stability. Key enhancements include an always-on multi-threaded analysisd pipeline for Linux servers, pthread migration for manager daemons, rootcheck file-hash enrichment in alerts, and a self-contained Windows agent installer that ships required MinGW/OpenSSL runtime DLLs. It also includes numerous fixes across authd, maild, syscheck, logcollector, and rules.
Security Fixes
- @atomicturtle - PR 2216 - Fix ossec-authd failure under modern Linux crypto policies (RHEL 8+)
- @atomicturtle - PR 2219 - Fix ossec-maild heap corruption when building alert email bodies
General
- @atomicturtle - PR 2214 - Migrate manager daemons to pthreads and add shared thread pool support
- @atomicturtle - PR 2220 - Keep ossec-maild running when SMTP is temporarily unavailable
- @atomicturtle - PR 2228 - Validate agent keys with OS_IsValidIP for IPv6 authd -i keys
- @atomicturtle - PR 2232 - Indicate when report_changes diffs are truncated (#455)
- @atomicturtle - PR 2236 - Update stale IIS and Windows doc URLs in setup helpers (#1975)
- @Hu6li - PR 2244 - Append MD5/SHA1/SHA256 hashes of detected rootcheck files to alerts
- @atomicturtle - PR 2246 - Multi-threaded analysisd event pipeline for Linux servers
- @atomicturtle - PR 2247 - Bundle MinGW/OpenSSL runtime DLLs in the Windows agent installer (#2241)
Bug Fixes
- @atomicturtle - PR 2217 - Fix memory leak in analysisd OS_IsValidIP path (#2108)
- @atomicturtle - PR 2218 - Fix agent getaddrinfo failures on RHEL 8+ by retrying with IPv4
- @atomicturtle - PR 2221 - Fix Windows agent ignoring configured notify_time for keep-alives
- @atomicturtle - PR 2223 - Fix logcollector memory leak when duplicate localfiles are configured
- @atomicturtle - PR 2225 - Fix wrong CloseHandle on Windows realtime duplicate hash path
- @atomicturtle - PR 2226 - Fix frequency rule alert context showing unrelated log lines (#1079)
- @atomicturtle - PR 2227 - Fix incomplete syscheck baseline database population (#1248)
- @atomicturtle - PR 2229 - Fix syscheck diff false errors and snapshot handling (#1296)
- @atomicturtle - PR 2230 - Restore rule.group in JSON alert output (#1838)
- @atomicturtle - PR 2231 - Fix authd graceful SIGINT/SIGTERM shutdown (#919)
- @atomicturtle - PR 2233 - Honor localfile command frequency after logcollector restart (#1415)
- @atomicturtle - PR 2234 - Restore linear scan fallback for syscheck db lookups (#1248)
- @atomicturtle - PR 2235 - Poll journald continuously instead of on command frequency (#2110)
- @atomicturtle - PR 2237 - Fix false CIS apt sources alert on Ubuntu 24.04
- @atomicturtle - PR 2238 - Fix false dpkg install alert when removing packages
- @atomicturtle - PR 2239 - Fix msauth Enterprise Admins false positives and negatives
- @atomicturtle - PR 2240 - Fix Postfix rule 3331 false positive on postscreen client ports
- @atomicturtle - PR 2243 - Fix AIX agent entropy failure after chroot by keeping OS RNG usable
OSSEC changelog (4.1.0) support@atomicorp.com
Release Maintainers
Dan Parriott
Scott R. Shinn (https://www.atomicorp.com)
Contributors on this release
- @atomicturtle
- @mobstef
Release Notes
This release focuses on improving core stability, scalability, and platform support. Key enhancements include SMTP authentication support, IPv6 whitelisting improvements, and support for large files (>2GB). This release also includes multiple bug fixes for analysisd and logcollector crashes.
Security Fixes
- @atomicturtle - PR 2181 - Increase default decoder field limit to 256 to support complex log formats
- @atomicturtle - PR 2195 - Add SMTP TLS and authentication support to maild and monitord
General
- @atomicturtle - PR 2183 - CentOS 7 build fixes and C99 adjustments
- @atomicturtle - PR 2185 - Add support for Rocky Linux 9
- @atomicturtle - PR 2186 - Fix agent_control -l output formatting and ICMP logging
- @atomicturtle - PR 2192 - Spec file improvements for RPM packaging
- @mobstef - PR 2194 - Fix Lua symlink targets in build process
- @atomicturtle - PR 2196 - Add GitHub Actions for automated Linux builds
- @atomicturtle - PR 2197 - Add GitHub Actions for automated Windows builds
- @atomicturtle - PR 2198 - Increase OS_MAXSTR to 6144 to prevent log truncation
- @atomicturtle - PR 2200 - Improve IPv6 whitelisting and support in install.sh
- @atomicturtle - PR 2201 - Enable large file support (>2GB) in Makefile and hash operations
Bug Fixes
- @atomicturtle - PR 2162 - Fix Windows version reporting and DB reconnection logic
- @atomicturtle - PR 2184 - Fix false positive in rootcheck for /dev/shm
- @atomicturtle - PR 2187 - Fix memory leak in logcollector and initialize DH parameters in os_auth
- @atomicturtle - PR 2188 - Fix crash in analysisd on sid_prev_matched list overflow
- @atomicturtle - PR 2191 - Fix segfault in analysisd with custom decoders and LibMagic
- @atomicturtle - PR 2199 - FIM: handle missing fields in syscheck logs and update Windows manifest IDs
OSSEC changelog (4.0.0) support@atomicorp.com
Release Maintainers
Dan Parriott
Scott R. Shinn (https://www.atomicorp.com)
Contributors on this release
- @atomicturtle
Release Notes
Major security and stability release addressing critical memory safety issues and modernizing cryptographic implementations. This release includes fixes for multiple heap use-after-free (UAF) vulnerabilities, uncontrolled recursion in XML parsing, and implementation of secure random number generation for agent key creation. Additionally, file integrity monitoring has been modernized with SHA-256 support, and several external dependencies have been updated to their latest stable versions.
Breaking Changes
Warning
AES Encryption Now Default for Agent Communication
OSSEC 4.0.0 agents now use AES encryption by default for agent-server communication. This is NOT backwards compatible with OSSEC 3.8.0 and older servers.
Migration Options:
- Upgrade servers first (recommended): Update all OSSEC servers to 4.0.0 before upgrading agents
- Use legacy Blowfish encryption on 4.0.0 agents: Add to agent
ossec.conf:<client> <crypto_method>blowfish</crypto_method> </client>
Configuration Changes
-
SHA-256 File Integrity Monitoring: SHA-256 is now enabled by default for all monitored directories. No configuration changes are required.
-
To disable SHA-256 (if needed for compatibility):
<syscheck> <directories check_sha256sum="no">/etc</directories> </syscheck>
Security Fixes
- @atomicturtle - PR 2178 - Fix critical UAF bug in memory leak fix (Issue #1818)
- @atomicturtle - PR 2177 - Fix Issue #1817: Heap UAF in OSSEC Alert decoder with leak-free Eventinfo refactor
- @atomicturtle - PR 2175 - Fix uncontrolled recursion in os_xml _ReadElem (Issue #1953)
- @atomicturtle - PR 2167 - Implement secure RNG for agent key generation using OpenSSL RAND_bytes
General
- @atomicturtle - PR 2174 - Fix help/version argument exit codes
- @atomicturtle - PR 2173 - Fix for Issue #2056 in syscheck decoder
- @atomicturtle - PR 2171 - Ignore ENOENT in OS_RemoveCounter to prevent benign error messages
- @atomicturtle - PR 2170 - Improve error message in ossec-testrule for missing rule matches (Issue #2093)
- @atomicturtle - PR 2169 - Clean up redundant NULL checks in report filter function (Issue #2133)
- @atomicturtle - PR 2168 - Improve logcollector crash fix to check read function pointer (Issue #2156)
- @atomicturtle - PR 2166 - FIM modernization: SHA-256 integration and safe buffer handling
- @atomicturtle - PR 2165 - Update Lua to version 5.4.7
- @atomicturtle - PR 2164 - Update zlib to version 1.3.1
- @atomicturtle - PR 2163 - Update cJSON to version 1.7.18
- @atomicturtle - PR 2162 - Build fixes for Windows
- @atomicturtle - PR 2147 - Add RPM spec file
- @atomicturtle - PR 2146 - Handle SSL EOF condition in agent-auth
OSSEC changelog (3.8.0) scott@atomicorp.com
Release Maintainers
Dan Parriott
Scott R. Shinn (https://www.atomicorp.com)
Contributors on this release
- @1stmile-sysEngineer
- @atomicturtle
- @ddpbsd
- @g3rhard
- @pwntester
- @ngarratt
- @staskysel
- @XALM1337X
Release Notes
Update to authd to enforce chrooting, and privilege separation. The authd daemon will by default run as the ossec user. Adds support for AIX 7.x on power architecture (8/9/10).
General
- @ddpbsd - PR 1874 - pcre2 fix for windows1 decoders
- @g3rhard - PR 1939 - fix for AppArmor rules (added 5100 rule as parent)
- @ngarratt - PR 1958 - Support for AIX 7
- @ddpbsd - PR 2062 - Fix for issue #2020, False positive "Trojaned version of file '/bin/diff' detected" on Archlinux
- @staskysel - PR 2064 - Fix overwriting an agent counter with sender counter during updating keys
- @pwntester - PR 2070 - Add CodeQL wofkflow
- @1stmile-sysEngineer, @ddpbsd - PR 2084 Update for 1stmile rootkit detection
- @XALM1337X - PR 2092 Fix for CVE-2020-8446
- @XALM1337X - PR 2094 Fix for CVE-2020-8445
- @atomicturtle - PR 2143 Enforce chroot and privilege separation for the authd daemon
OSSEC changelog (3.7.0) scott@atomicorp.com
Release Maintainers
Dan Parriott
Scott R. Shinn (http://www.atomicorp.com)
Contributors on this release
- @atomicturtle
- @ddpbsd
- @ChristianBeer
- @lyellread
- @nfsec
- @tonoitp
- @swindmill
- @g3rhard
- @giannidaprile
- @seren
- @nurse
- @Skactor
- @sempervictus
- @Midi12
- @icy
Release Notes
Support for Journald
General
- @ddpbsd PR 1840 Add unbound DNS rules
- @ddpbsd PR 1941 Silence build time warning for archive json output.
- @ddpbsd PR 1842 maild rework with maxminddb. This retires usage of the EOL GEOIP library.
- @midi12 PR 1845 Add active response for Amazon AWS WAF
- @sempervictus PR 1852 Add support for journald log format
- @ddpbsd PR 1865 Build fix for pcre2 with winagent
- @ddpbsd PR 1878 Build fixes for solaris
- @nurse PR 1887 Support Ubuntu Bionic arm64
- @skactor PR 1899 Update rootkit detection for reptile rootkits
- @seren PR 1913 Fix regexp import in ossec-batch-manager.pl
- @giannidaprile PR 1919 Fix NetBSD builds that don't support JIT regular expressions
- @ddpbsd PR 1936 Fix for change in named query log format
- @g3rhard PR 1938 fix for apparmor rules
- @swindmill PR 1940 closes issue 314 Add checksum to default alert "New file added to the file system"
- @atomicturtle PR 1951closes issue 1949 invalid link in README
- @atomicturtle PR 1952 closes issue 1528 Rootcheck docker OverlayFS directories problem
- @tonoitp PR 1967 update to agentless monitoring ssh_asa-fwsmconfig_diff
- @ddpbsd PR 1972 Closes issue 1969 missing systemd libraries in the INSTALL docs
- @lyellread PR 1974Updating broken documentation links
- @atomicturtle [PR 1979] Closes issues 1970 debian packaging postinst should not remove ossec users on upgrade
- @nfsec PR 2017 Add rootkit signatures for Jynx and Beurk
- @ChristianBeer PR 2029 Add active response script for nftables
OSSEC changelog (3.6.0) scott@atomicorp.com
Release Maintainers
Dan Parriott
Scott R. Shinn (http://www.atomicorp.com)
Contributors on this release
@ddpbsd Dan Parriot - Maintainer
@NicolasCARPi - Nocolas Carpi - Community
@cpu - Daniel McCarney - Community
@jknockaert - Jasper Knockaert - Community
@mwidman - Mike Widman - Community
@drsjb80 - Steve Beaty - Community
General
@ddpbsd - ossec-dbd, Add help output to dbd, ossec#1833
@NicolasCARPi - INSTALL, updating depenency list, ossec#1832
@cpu - PCRE2, refuse to compile empty PCRE2 patterns, fix for Issue #1811, ossec#1826
@cpu, analysisd, resolves CVE-2020-8442 Issue #1820, ossec#1825
@cpu, analysisd, resolves CVE-2020-8443 Issue #1816, ossec#1824
@cpu, analysisd, resolves CVE-2020-8448 Issue #1815, ossec#1823
@cpu, Makefile, fix for DEBUGAD, ossec#1822
@jknockaert - dropbear rules, limit brute force rule to dropbear, ossec#1803
@mwidman, analysisd, Added non-standard Sophos UTM syslog timestamp format to pre-decoding. , ossec#1794
@drsjb80 - configs, Added authentication log file location for debian-based systems , ossec#1784
@ddpbsd - maild, Fix using a program to send mail, ossec#1783
OSSEC changelog (3.5.0) scott@atomicorp.com
Release Maintainers
Dan Parriott Scott R. Shinn (http://www.atomicorp.com)
Contributors on this release
(@atomicturtle) Scott Shinn - Maintainer (@ddpbsd) Dan Parriot - Maintainer (@drsjb80) Steve Beaty - Community (@sempervictus) Boris Lukashev - Community
Release notes
This would have been a minor 3.4.1 update if it wasnt for Boris Lukashev of https://www.sempervictus.com contributing a much needed update to multi-line log analysis. Previous usage of multi-line in OSSEC in the past was limited in processing events that did not use indentiation, a fairly common modern practice for readability. This update adds a new type: multi-line_indented to handle this condition (Example: postgresql).
Maintenance fixes in this release also address issue #1781, which affected maild when calling an external program, and add support for Fedora 31
Whats New:
(@atomicturtle) - Fedora 31 Support (@sempervictus) - Implement multi-line collection for indented logs #1780 (@drsjb80) - Added authentication log file location for debian-based systems #1784
General
(@ddpbsd) - Fix for Issue #1781, corrects issues with program sending mail
OSSEC changelog (3.4.0) scott@atomicorp.com
Release Maintainers
Dan Parriott Scott R. Shinn (http://www.atomicorp.com)
Contributors on this release
(ddpbsd) Dan Parriot (bchavet) (binrush) (mikeroyal) (iasdeoupxe) (aquerubin) (Varstahl) (atomicturtle) (jubois) (almirb)
Release notes: libevent handler ossec#1698 for dialog. pcre2 rules
Whats New Big changes in this release add support for the following new platforms: - Debian buster - Fedora 30 - RHEL 8 - (Much awaited!) Centos 8
Snapcraft.io universal linux packaging support (aka Snaps) allow for a universal OSSEC package across multiple linux distributions.
Last but not least, ddpbsd has a long awaited fix for agentd/maild when ipv6 is disabled and/or hostnames are used instead of IPs in PR#1698. Thanks again to all our community contributors, and dedicated team members for their work on this release!
New Rules / Decoders
(aquerubin) Updated IPv4-dependent regexp in ownCloud decoders. PR#1697 (jubois) Fix Issue #1708 (Incorrect regex match) PR#1710 (jubois) PCRE2 rulefiles conversion PR#1711 (jubois) PCRE2 decoders conversion PR#1712 (aquerubin) Fix owncloud decoder PR#1724 (iasdeoupxe) Additional ownCloud decoder fix PR#1725 (iasdeoupxe) Second ownCloud decoder fix PR#1726 (ddpbsd) Adjust pix decoder and a firewall rule PR#1749 (binrush) Fixed missing same_source_ip in rule 11306 PR#1751 pureftpd (ddpbsd) Addition to sshd rule, new ntpd rule PR#1757, (ddpbsd) Fix rule IDs PR#1760 - openbsd_rules
General (ddpbsd) syscheck, Try to silence the "Attempted to check FS status for" message. PR#1701 (ddpbsd) syscheck, Add some basic error handling to syscheck_control PR#1702 (ddpbsd) core, More unlink and fopen error handling in src/util PR#1703 (almirb) active-response,Added Cloudflare active-response script. PR#1709 (Varstahl) cyslogd, csyslogd CEF – Remove duplicate parameters and fix discarded hashes PR#1713 (atomicturtle) - docs, Updating links, using https, conference links PR#1714 (Varstahl) cyslogd, Fix: csyslogd – CEF escaping / multi-line syslog (ddpbsd) core, Check return values for unlink(2) calls PR#1733 (mikeroyal) packaging, snap build support PR#1737 (ddpbsd) core, Set PCRE2_SYSTEM to no by default. PR#1738 (ddpbsd) logtest, Remove leading space from field names PR#1741 (bchavet) analysisd, Verify Googlebot PR#1752 , this is a code function in generic_samples.c (ddpbsd) analysisd, Free the lf->fields memory. PR#1758, fixes issue #1727 (ddpbsd) testing, Update some travis-ci bits PR#1759 - travis fixes
OSSEC changelog (3.3.0) scott@atomicorp.com
Release Maintainers
Dan Parriott Scott R. Shinn (http://www.atomicorp.com)
Contributors on this release
almirb (Almir Bolduan) aquerubin (Antonio Querubin) atomicturtle (Scott R. Shinn) Bob-Andrews (Bob Andrews) ddpbsd (Dan Parriott) jubois MangyCoyote mephesto1337
Release Notes
OSSECCON 2019, from the whole team here at OSSEC it was really fantastic meeting everyone at the show, and we look forward to seeing you all again at OSSECCON 2020!
PCRE2, Jubois made a major update to the IDS foundation in OSSEC 3.3.0 with PCRE2 (https://www.pcre.org/current/doc/html/pcre2.html) library. This is an extremely powerful update to the overall pattern analysis functionaility in OSSEC. In order to build this with the native distribution pcre2 packages (pcre2-devel, etc), you will need to use: export PCRE2_SYSTEM=yes. This adds several new xml tags:
- pcre2 (to replace regex)
- match_pcre2
- program_name_pcre2
- prematch_pcre2
- srcgeoip_pcre2
- dstgeoip_pcre2
- srcport_pcre2
- dstport_pcre2
- user_pcre2
- url_pcre2
- id_pcre2
- status_pcre2
- hostname_pcre2
- extra_data_pcre2
Dynamic Decoders, discussed in the "Beyond Security" talk at OSSECCON 2019, this allows for user-defined keys in decoders. These are exposed in JSON output for inclusion with other data analytics tools. This adds a new internal option: analysisd.decoder_order_size to define the maximum number keys allowed in a single decoder.
Whats New
(jubois) - PCRE2 regular expression support - PR#1652
(atomicturtle) - ossec-analysisd, Dynamic decoder support. Original: Vikman Fdez-Castro - PR#1678
(ddpbsd) - ossec-execd, Switch "white lists" to "allow lists" - PR#1687 - NARRATE HERE
New Rules / Decoders (Bob-Andrews) - rootcheck, update for NullSessionShares - PR#1669 (Bob-Andrews) - topleveldomainrules.xml, Shady TLD web traffic detection - PR#1671 (Bob-Andrews) - last_rootlogin_rules.xml, Sensitive login detection - PR#1671 (Bob-Andrews) - unbound_rules.xml, added rule for maybe critical TLD request - PR#1672 (Bob-Andrews) - rootcheck, Deleted repeating rules - PR#1674 (ddpbsd) - Update info links in Windows rules - PR#1675 (aquerubin) - Added decoder for pam_succeed_if - PR#1684
General (MangyCoyote) - ossec-analysisd, support Syslog ISO timestamp events with optional fraction of second - PR#1664 (ddpbsd) - Fix compilation with PCRE2_SYSTEM=yes - PR#1666 (aquerubin) - ossec-batch-manager.pl, update regexp for ipv6 addresses - PR#1667 (mephesto1337) - Fix part of issue#1663, compiling with PCRE2_SYSTEM=yes - PR#1677 (ddpbsd) - active-response, Fix for issue#1647, log disable-account.sh to the correct location - PR#1683 (aquerubin) - Copy resolv.conf on build event - PR#1685 (almirb) - active-response, Corrected the way active-response logs are generated on windows - PR#1689 (atomicturtle) - ossec-execd, Expose filename variable in AR add/delete events - PR#1695
OSSEC changelog (3.2.0) scott@atomicorp.com
Release Maintainers
Dan Parriott Scott R. Shinn (Atomicorp, Inc.)
Contributors on this release
atomicturtle Bob-Andrews ddpbsd knqyf263 jubois mig5 mwmahlberg nhatking16591 pillarsdotnet
Release Notes The great JSON-in-ing has begun! New features in this release focus on extending JSON output support to control commands like agent_control, syscheck_control, and rootcheck_control. Additional extensions add support for archives.log in native json format, and improving the alert.json output. This release also also brings some much needed enhancements to ossec-authd to streamline the agent registration experience (thanks nhatking16591!), Bob-Andrews continues on major auditing improvements plus support for Solaris 11.
We'd like to thank all the great contributors (named and anonymous!) who continue to improve ossec and support our community. We'd also like to welcome all our new contributors to OSSEC on this release. They have helped us on bug testing, documentation, new features, rules, compliance checks, code and more. There are no small contributions to a project like OSSEC, and we continue to thrive with your support. Special thanks to security researchers A.P. and S.S. for their audit of the ossec project, your work has greatly benefited the community.
If you're interested in joining our team, or just interacting with us on slack email us at: invite@ossec.net
Whats New
(atomicturtle) - add ossec-configure to contrib - PR#1559
(atomicturtle) - add <log_format>audit</log_format> for native audit.log support - PR#1589
(nhatking16591) - authd, Allow reuse ID and improve search algorithm finding available ID key. Fixes issue#1587, PR#1594
(ddpbsd) - syscheck, add <no_recurse> option to keep FIM from going down directories. Addresses Issue#1595 - PR#1597
(atomicturtle) - archives.json, JSON support for archives.log with <logall_json>yes</logall_json> - PR#1596, PR#1601, PR#1608
(atomicturtle) - agent_control, -j for JSON output - PR#1625
(atomicturtle) - syscheck/rootchec_control, add -j for JSON output - PR#1626
(atomicturtle) - manage_agents, add -j for JSON output, -a to add new agent, -a -n add new agent with declared name - PR#1627
(atomicturtle) - internal_options.conf, remoted.pass_empty_keyfile will toggle if remoted exits on an empty client.keys file - PR#1628
(atomicturtle) - manage_agents, add -d modifier to -a (add) to remove an agent pinned to an already declared IP - PR#1632
(atomicturtle) - manage_agents, add -F <sec> modifier to -a (add), this will delete an agent with the same IP if it has not been seen in -F <secs> - PR#1639
(atomicturtle) - manage_agents, add -m flag to show the max agent limit - PR#1650
New Rules / Decoders (Bob-Andrews) - rootcheck, add Solaris11 CIS checks - PR#1557 (Bob-Andrews) - rootcheck, add password requirement checks - PR#1558, PR#1562 (Bob-Andrews) - Kasperskey Endpoint Security rules/decoders - PR#1573 (Bob-Andrews) - Cowrie / Dionaea Modern Honeypot Network rules/decoders - PR#1574 (Bob-Andrews) - Dionaea/Cowrie decoder, Changed IPv4 to IPv4/IPv6 - PR#1578 (Bob-Andrews) - Windows Powershell rules: ms_powershell_rules.xml, add powershell rules - PR#1579 (jubois) - proftpd decoder: decoder simplification - PR#1657 (ddpbsd) - nsd rules: nsd_rules.xml, detect zone transfer attempts - PR#1598 (Bob-Andrews) - Windows Powershell rules: ms_powershell_rules.xml, dangerous commands/background activity - PR#1646
General (mig5) - firewall-drop.sh, modify to support non-bash environments - PR#1572 (mwmahlberg) - ossec-agent.conf, remove double hyphen in comment. Fixes issue#1582 - PR#1583 (ddpbsd) - ossec-maild, allow permission changes to make it into email alerts. Fixes issue#1571 - PR#1593 (ddpbsd) - installation, addresses issue#1570, allow installation as unpriv user - PR#1599 (atomicturtle) - JSON output, basic json functions for agent_control - PR#1600, PR#1602 (ddpbsd) - ossec-authd, use IPExist to check for duplicate IP addresses - PR#1603 (ddpbsd) - general, default to not setting the compiler optimization level - PR#1604 (ddpbsd) - general, default to showing verbose compiler output - PR#1605 (atomicturtle) - agent_control, JSON output prep work - PR#1606 (atomicturtle) - JSON output, adding functions for rootcheck compliance output in JSON - PR#1607 (atomicturtle) - JSON output, minor optimization - PR#1609 (atomicturtle) - agent_control, minor fixes for JSON output - PR#1610 (ddpbsd) - zlib, shifting dependencies to the system zlib - PR#1612 (ddpbsd) - LUA, disable lua by default, shifting dependencies to the system lua - PR#1613 (ddpbsd) - security review, coverity fixes - PR#1616 (atomicturtle) - JSON output, minor update for JSON log dirs/files - PR#1617 (atomicturtle) - JSON output, fix lf location array from unknown syslog - PR#1618 (atomicturtle) - manage_agents, bugfix when generating keys from a file - PR#1619 (atomicturtle) - ossec-analysisd, increase default memory size from 1024 to 8192 (dcid) - PR#1620 (ddpbsd) - security review, coverity fixes - PR#1621 (atomicturtle) - JSON output, adding more groups, and clean up formatting - PR#1622 (ddpbsd) - security review, coverity fixes for PR#1624 - PR#1629 (ddpbsd) - manage_agents, add an error path for being unable to chmod authfile - PR#1629 (pillarsdotnet) - active-response, directory traversal fix - PR#1630 (ddpbsd) - ossec-control, remove author tag from output - PR#1633 (atomicturtle) - agent management cleanup, rootcheck/syscheck data is removed on a delete event - PR#1634 (ddpbsd) - json output, add prototype for function/ fixing compile warnings - PR#1636 (ddpbsd) - json output, cleanup for unused variables - PR#1637 (ddpbsd) - ossec-maild, remove legacy sms output type - PR#1638 (ddpbsd) - agent_control, usage output update - PR#1640 (jubois) - dotests.sh, Improved dotests.sh output - PR#1641 (jubois) - Correct tests in contrib/logtesting - PR#1645 (atomicturtle) - ossec-analysisd, fix for analysisd segfault in overwrite rule condition - PR#1649 (atomicturtle) - ossec-csyslogd, fix for size returned from a tcp syslog event - PR#1653 (jubois) - fix compilation warnings - PR#1654 (knqyf263) - ossec-maild, fix for email being sent infinitely - PR#1658
OSSEC changelog (3.1.0) scott@atomicorp.com
Release Maintainers
Dan Parriott Scott R. Shinn (Atomicorp, Inc.)
Release Notes
Special thanks on this release go out to:
davestoddard for an amazingly well thought out, and well documented update to the networking code
Bob-Andrews for the largest update to the auditing system in the project history
phamvoung for resolving some very subtle bugs and high profile issues with the authd daemon
We'd also like to thank all the other fantastic contributors to the project, whom are referenced in parenthesis in the changelog. We cannot thank you enough!
Whats New (davestoddard) Modification to Correct IP Connectivity Issues on BSD Servers PR #1412
New Rules / Decoders (Bob-Andrews) - linux_usbdetect_rules.xml, ms1016_usbdetect_rules.xml, ms_firewall_rules.xml (Bob-Andrews) - Added ms_ipsec_rules PR #1549 (Bob-Andrews) - Rootchecks for Debian 7+8, cis_debianlinux7-8_L1_rcl.txt, cis_debianlinux7-8_L2_rcl.txt, cis_win10_enterprise_L1_rcl.txt, cis_win10_enterprise_L2_rcl.txt PR #1531 (Bob-Andrews) - acsc_office2016_rcl.txt, Added rootcheck PR #1510 (Bob-Andrews) - added cis_win2016_memberL1_rcl.txt, cis_win2016_memberL2_rcl.txt PR #1496 (Bob-Andrews) - cis_win2012r2_memberL1_rcl.txt, Added Check Description/Alert PR #1495 (ddpbsd) - additional sshd decoders PR #1480 (ddpbsd) - basic support for Dnsmasq PR #1461
General
(iasdeoupxe) - host-deny.sh: Move duplicate entry check into the add action PR #1554
(iasdeoupxe) - host-deny.sh: Use consistent indentation PR #1553
(iasdeoupxe) - host-deny.sh: Remove unnecessary echo for duplicated entry PR #1552
(Bob-Andrews) - Added new id ranges for linux usb detection rules, ms1016 usb detection rules and ms firewall rules from PR #1543
(Bob-Andrews) - Corrected IDs to a non user defined range PR #1547 (psad_rules.xml, sysmon_rules.xml, unbound_rules.xml)
(c0r3dump3d) - Correct and expand spanish translation PR #1541
(ddpbsd) - Adjust the tests for sysmon rules PR #1548
(MangyCoyote) - install.sh - case for s-nail patch can't be applied if mail is not installed PR #1539
(atomicturtle) - ossec-authd Fix for foreground flags PR #1538
(atomicturtle) - ossec-authd Add -f foreground flag support PR #1537
(featzor) - psad signature match level 6 PR #1517
(Bob-Andrews) - Corrected rootcheck CIS tests for cis_win2012r2_domainL2_rcl.txt, is_win2012r2_memberL2_rcl.txt, cis_win2016_domainL2_rcl.txt PR #1521
(franciosi) - Updated README.md, correts small typos PR #1519
(ddpbsd) - Fix the subject handling. Issue submitted by Michael Starks #1370 PR #1377
(foygl) - ossec-slack.sh, Fix and clean up output for Slack integration PR #1508
(ddpbsd) - From issue #1514, a duplicate _gsid1 == 0 -> _gsid0 == 0 PR #1515
(Bob-Andrews) - cis_win2016_domainL1_rcl.txt, Corrected Check - Registry Hive PR #1511
(ashley-dunn) - Fix "bellow" typos in ossec-[client|local|server].sh files PR #1512
(ddpbsd) - Fix the log location in the ossec-slack AR script. PR #1422
(phamvuong) - BUGFIX: remove default value for authpass PR #1464
(calve) - Bump version definition in defs.h PR #1504
(ddpbsd) - More coverity fixes PR #1497
(ddpbsd) - Modify status() to not return 1 when maild is not running PR #1501
(ddpbsd) - Coverity fixes PR #1490
(Bob-Andrews) - Moved file to ossec-hids/ src/rootcheck/db/ PR #1493
(ddpbsd) - Make sure there's room for the full alert id in json alerts PR #1487
(ddpbsd) - Fix an issue in the nodiff option which could ignore files it isn't supposed to PR #1486
(ddpbsd) - Hard coded user/group changed to appropriate variables PR #1484
(ddpbsd) - Add FreeBSD's php.ini location to rootcheck db PR #1483
(ddpbsd) - Replace hard coded directories with the appropriate variables PR #1482
(ddpbsd) - When trying to bind to a local address, present the error on failure. PR #1457
(ddpbsd) - version_bump.sh Quick script to make version bumping easier PR #1532
(phamvuong) - Call select() before checking active socket PR #1529
(stephengroat) - use nicer looking travis build badge PR #1460
(stevhsu) - Correct lua version variable PR #1459
OSSEC changelog (3.0.0) scott@atomicorp.com
Release Maintainers
Dan Parriott Scott R. Shinn (Atomicorp, Inc.)
Whats New SQLite support for syscheck PR #1091 - whitelist for files in sqlite DB PR #1364 - add some ifdefs for the md5 whitelist database (USE_SQLITE)
Update cJSON 1.7.0
PR #1351
Add Pagerduty Active response
PR #1302
OSSEC-authd
PR #890 / #873 - Dichotomic search to add agents with authd
PR #1154 / #1210 - password support
PR #1161 - avoid IP duplication, time limit agent deletion with duplicate IP, and option for re-using an agent ID
PR #1190 - Exit handler for authd to delete PID file
PR #1208 - add cipher configuration support
zlib update to 1.2.11
PR #1198
ossec-agent selinux module
PR #1193
windows agent
PR #1170 - add agent-auth.exe support
add tcp support for agent communications
PR #1162
GeoIP support in rules and events
PR #840 - Support in alerts
PR #927 - add geoip support to JSON output analysisd.geoip_jsonout=0
PR #929 - Modify rule token different_geoip rule to different_srcgeoip
PR #984 - fix some geoIP bugs
PR #1108 - decoder fixes
Slack support
Bugfix #947 - Escape the '.' in the grep for '.ALERTLAST' #947
Bugfix #959 - silent curl in ossec-slack
Decoders filename attribute
PR #915 - A few fixes, but most importantly the ability to set the filename attribute from a decoder. This will help create automated pipelines for FIM Verification. I currently need to compare FIM events against 1) Puppet, 2) GIT, and 3) RPM. This patch allows FIM events to be intercepted by my custom FIM Verification script, which generates logging events which OSSEC can read and turn back into an event with the filename attribute set.
New Rules / Decoders
PR #1297 / #1335 - update named rules PR #1324 - Bitcoin wallet scans to suspicious URLs PR #1356 - Openbsd DHCP rules
General
Bugfix #42 - Add option to use unaltered hashes with Windows syscheck Bugfix #210 - Time option in rules is rejecting valid syntax. Bugfix #425 - manage_agents unable to access /dev/random due to chroot Bugfix #454 - Prevent manage_agents from chrooting in bulk mode Bugfix #780 - Compile warning (and potential segfault) after merge from calve/do_not_show_diff Bugfix #829 - Segmentation fault at logcollector Bugfix #888 - Pull Request #840 reverts some ipv6 support Bugfix #869 - ossec-agentd is unable to unmerge files Bugfix #892 - Contrib tools need to be updated for IPv6. Bugfix #911 - "any" is broken after change to sacmp for ipv4 networks #911 Bugfix #913 - logcollector goes into loop when a NULL is in the log Bugfix #960 - do not attempt to start ossec-maild when it is enabled Bugfix #961 - fix for open file handle when rotating alerts.json Bugfix #976 - win32: 2 values in internal_options.conf ignored Bugfix #994 - rootcheck, fix for false positive trojaned /bin/grep Bugfix #998 - IPv6 triggers Rule 1002 Bugfix #1065 - fix for negating IP/CIDR rules Bugfix #1084 - fix a double free Bugfix #1106 - ossec-remoted, Fix for clang checks, and a potential DOS caused by a warning Bugfix #1142 - CEF field uniqueness fix Bugfix #1145 - if getaddrinfo fails with WAI_FAMILY try ipv4 Bugfix #1165 - rpm spec files generate ossec user and group in user space Bugfix #1180 - Add last events (previous output) to JSON output Bugfix #1205 - Avoid EOL conversion of received files in the windows receiver Bugfix #1227 - Fix for daily reports not being sent Bugfix #1237 - Custom CFLAGS/CXXFLAGS/LDFLAGS support Bugfix #1274 - ossec-authd, ipv6 returns an invalid key Bugfix #1278 - Use getent to check for users/group Bugfix #1366 - Update to rule ID map Bugfix #1370 - Bugfix for full subject handling
PR #770 - ossec-dbd, postgresql fixes on the user colume, schema, and not null conditions PR #778 - syscheck, Selective opening mode to extract file hash #778 PR #792 - Check for a null from malloc PR #802 - ossec-dbd, allow for longer entries in the system.information column PR #804 - ossec-dbd, allow for mysql/postgres format changing based on MYSQLDB/POSTGDB PR #806 - ossec-reportd, report fixes on IP and user fields PR #808 - Igngore openBSD's random seed PR #824 - ossec-dbd, fix for mysql/postgres insert condition PR #839 - JSON output, Add group field to json output PR #843 - Add support for CZMQ v3 PR #848 - Fixed bug at logcollector that inhibited alerts about file reduction PR #849 - ossec-maild, Format string security fix PR #855 - Fixed memory error on CDB lists management PR #859 - added utils to rename an agent or change its IP address (rename_agent.sh, renumber_agent.sh) PR #862 - ossec-analysisd, fixed memory leaks PR #864 - There is an error when running ossec-logtest to test rules with check_diff, since it doesn't change root directory and tries to create a directory at/queue/diff`. PR #866 - JSON output, Add timestamp for events PR #881 - Add debugging output to active repsonse xml config read PR #883 - Bugfix for agents failing to bind to a specific local IP address and the server is specified by hostname. PR #887 - agent status needs to be verified before using agt->lip PR #893 - Prelude IDS support, Do not use absolute indexes in prelude fields PR #899 - manage_agents, OSSEC agent IDs can only be numbers but they are treated as strings. Because of this, it's possible to add the agent "00" and "000", or "1" and "00001" at the same time, and they can be confused on extracting keys or on deleting agents. PR #909 - ossec-logtest, Bugfix for decoders.d/rules.d segfault PR #910 - Update intcheck_op.c PR #912 - update validate_op.c PR #918 - ossec-logtest, add -q "quiet" flag support PR #920 - Bugfixes for OS_IPFound, OS_IPFoundList, OS_IsValidIP. #920 PR #921 - JSON output, This removes the double addition of the 'action' field and adds a few other interesting fields that I need for my analysis in ELK. Most notably, the rule.group is now passed out via the zmq output. PR #923 - ossec-dbd, fix SQLi in al_data->location PR #928 - ossec-logtest, add geoip to logtest output PR #930 - fix memory leak in decode-xml.c PR #931 - Custom output, fix common realloc mistake in custom_output_search_replace. PR #934 - Create OSSEC users and group as system members PR #944 - Don't pass null variables to snprintf. PR #950 - Exclude btrfs-Filesystem from searching for hidden files inside directorie PR #953 - Prevent manage_agents from doing invalid actions on interactive mode PR #964 - Csyslogd patch for sending additional FIM event information PR #991 - set default AR level to 7 PR #1003 - JSON output, bugfix for duplicated group field PR #1004 - memory fixes in XML decoding, no-terminated strings, and searchAndReplace() PR #1016 - bugfix that prevents ossec-control from starting ossec-maild on server PR #1017 - ossec-remoted, fix for openbsd canary violation PR #1020 - Allow notify_timeout to be configured server-side. #1020 PR #1021 - Windows Agent, fix for build related issues PR #1027 -Fx for the "USER_AGENT_CONFIG_PROFILE" preloaded-vars.conf file usage. This fixes that and adds a profile config line if the variable is defined. Very useful for unattended installs or binary installs. PR #1089 - Retire picviz support PR #1090 - JSON output, add "id" to the json log PR #1093 - pf.sh, update support FreeBSD, OpenBSD, and Darwein PR #1097 - ossec-batch-manager.pl, support "any" IP address PR #1099 - AR, prevent duplication in hosts.deny PR #1100 - Windows agent, Open received files in binary mode cause of cr/lf and let hashes match. PR #1102 - JSON output, Fix timestamp PR #1116 - ossec-remoted, systemd support PR #1135 - ossec-dbd, UMYSQL_DATABASE_ENABLED does not exist in the tree except this one place. PR #1137 - Windows agent, administrators group might not be present on non-english installs PR #1148 - Update for gmake to compile on Solaris 11.2 PR #1149 - Update adduser.sh for Solaris 11.2 PR #1158 - Update shell on ossec-hids-solaris.init Solaris 11.2 PR #1159 - Update Makefile for Solaris PR #1179 - ossec-dbd, fix readme display IP as string PR #1235 - spelling fixes PR #1238 - fix for edead oop in hash_op.c PR #1255 - syscheck, update windows syscheck directories PR #1256 - ossec-dbd, use port for postgresql connections PR #1257 - rootcheck, make sleep interval configurable (rootcheck.sleep) PR #1258 - adduser.sh, fix the useradd and groupadd script for openbsd PR #1262 - agentless ssh.exp, remove the P's entirely to support upper and lower case PR #1304 - syscheck, Don't display the errno, show the error message PR #1307 - Allow alerts.log to be turned off (DOUBLE CHECK, THIS WAS REVERTED) PR #1322 - rootcheck, mysql/mariadb auditing checks PR #1336 - Disable warning on OS_PassEmptyKeyfile PR #1342 - remove execute flag on rules and config files PR #1343 - Makefile fix ar warning PR #1344 - add option to exclude lua and use system zlib PR #1345 - gitignore, Ignore zlib paths PR #1347 - Fix compiler warnings: Wall, Wextra PR #1374 - Bugfix for AIX building PR #1382 - added rootcheck file for apache 2.2/2.4