aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Gallatin <gallatin@FreeBSD.org>2026-04-20 21:35:46 +0000
committerAndrew Gallatin <gallatin@FreeBSD.org>2026-04-21 13:27:43 +0000
commit16de94eaf09b75a9a1e90254a6fe5812f55f4cab (patch)
treebc4532bd5993d3d59a39c94d3a5e78dbce4afa2c
parentd95a73b4c7e314084f838c7b68ae9da8e4ba2982 (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.c17
-rw-r--r--sys/security/audit/bsm_token.c2
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);