diff options
| author | Andrew Gallatin <gallatin@FreeBSD.org> | 2026-04-20 21:35:46 +0000 |
|---|---|---|
| committer | Andrew Gallatin <gallatin@FreeBSD.org> | 2026-04-21 13:27:43 +0000 |
| commit | 16de94eaf09b75a9a1e90254a6fe5812f55f4cab (patch) | |
| tree | bc4532bd5993d3d59a39c94d3a5e78dbce4afa2c | |
| parent | d95a73b4c7e314084f838c7b68ae9da8e4ba2982 (diff) | |
audit: Fix logging of IPv6 addresses
- kaudit_to_bsm: Log IPv6 as well as IPv4 and unix addrs
- au_to_sock_inet128: Treat ports the same way as au_to_sock_inet32() as
just pushing a uint16 causes byte ordering problems on little endian.
Differential Revision: https://reviews.freebsd.org/D39633
Sponsored by: Netflix
Reviewed by: csjp
| -rw-r--r-- | sys/security/audit/audit_bsm.c | 17 | ||||
| -rw-r--r-- | sys/security/audit/bsm_token.c | 2 |
2 files changed, 16 insertions, 3 deletions
diff --git a/sys/security/audit/audit_bsm.c b/sys/security/audit/audit_bsm.c index 6cd96ebe092f..4654b607aea5 100644 --- a/sys/security/audit/audit_bsm.c +++ b/sys/security/audit/audit_bsm.c @@ -542,6 +542,11 @@ kaudit_to_bsm(struct kaudit_record *kar, struct au_record **pau) kau_write(rec, tok); UPATH1_TOKENS; } + if (ARG_IS_VALID(kar, ARG_SADDRINET6)) { + tok = au_to_sock_inet128((struct sockaddr_in6 *) + &ar->ar_arg_sockaddr); + kau_write(rec, tok); + } break; case AUE_BIND: @@ -571,7 +576,11 @@ kaudit_to_bsm(struct kaudit_record *kar, struct au_record **pau) kau_write(rec, tok); UPATH1_TOKENS; } - /* XXX Need to handle ARG_SADDRINET6 */ + if (ARG_IS_VALID(kar, ARG_SADDRINET6)) { + tok = au_to_sock_inet128((struct sockaddr_in6 *) + &ar->ar_arg_sockaddr); + kau_write(rec, tok); + } break; case AUE_BINDAT: @@ -602,7 +611,11 @@ kaudit_to_bsm(struct kaudit_record *kar, struct au_record **pau) kau_write(rec, tok); UPATH1_TOKENS; } - /* XXX Need to handle ARG_SADDRINET6 */ + if (ARG_IS_VALID(kar, ARG_SADDRINET6)) { + tok = au_to_sock_inet128((struct sockaddr_in6 *) + &ar->ar_arg_sockaddr); + kau_write(rec, tok); + } break; case AUE_SOCKET: diff --git a/sys/security/audit/bsm_token.c b/sys/security/audit/bsm_token.c index f704f75c17df..ccf7ab7d2cc8 100644 --- a/sys/security/audit/bsm_token.c +++ b/sys/security/audit/bsm_token.c @@ -1065,7 +1065,7 @@ au_to_sock_inet128(struct sockaddr_in6 *so) ADD_U_CHAR(dptr, 0); ADD_U_CHAR(dptr, so->sin6_family); - ADD_U_INT16(dptr, so->sin6_port); + ADD_MEM(dptr, &so->sin6_port, sizeof(uint16_t)); ADD_MEM(dptr, &so->sin6_addr, 4 * sizeof(uint32_t)); return (t); |
