26 Aug, 2020

1 commit


18 Aug, 2020

2 commits

  • Checkpatch tool reports

    "ERROR: do not initialise globals/statics to 0"

    To fix this, audit_sig_sid is uninitialized
    As this is stored in the .bss section,
    the compiler can initialize the variable automatically.

    Signed-off-by: Jules Irenge
    Signed-off-by: Paul Moore

    Jules Irenge
     
  • Variables sig_pid, audit_sig_uid and audit_sig_sid
    are only used in the audit.c file across the kernel
    Hence it appears no reason for declaring them as globals
    This patch removes their global declarations from the .h file
    and change them into static in the .c file.

    Signed-off-by: Jules Irenge
    Signed-off-by: Paul Moore

    Jules Irenge
     

05 Aug, 2020

2 commits

  • Pull audit updates from Paul Moore:
    "Aside from some smaller bug fixes, here are the highlights:

    - add a new backlog wait metric to the audit status message, this is
    intended to help admins determine how long processes have been
    waiting for the audit backlog queue to clear

    - generate audit records for nftables configuration changes

    - generate CWD audit records for for the relevant LSM audit records"

    * tag 'audit-pr-20200803' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
    audit: report audit wait metric in audit status reply
    audit: purge audit_log_string from the intra-kernel audit API
    audit: issue CWD record to accompany LSM_AUDIT_DATA_* records
    audit: use the proper gfp flags in the audit_log_nfcfg() calls
    audit: remove unused !CONFIG_AUDITSYSCALL __audit_inode* stubs
    audit: add gfp parameter to audit_log_nfcfg
    audit: log nftables configuration change events
    audit: Use struct_size() helper in alloc_chunk

    Linus Torvalds
     
  • Pull uninitialized_var() macro removal from Kees Cook:
    "This is long overdue, and has hidden too many bugs over the years. The
    series has several "by hand" fixes, and then a trivial treewide
    replacement.

    - Clean up non-trivial uses of uninitialized_var()

    - Update documentation and checkpatch for uninitialized_var() removal

    - Treewide removal of uninitialized_var()"

    * tag 'uninit-macro-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    compiler: Remove uninitialized_var() macro
    treewide: Remove uninitialized_var() usage
    checkpatch: Remove awareness of uninitialized_var() macro
    mm/debug_vm_pgtable: Remove uninitialized_var() usage
    f2fs: Eliminate usage of uninitialized_var() macro
    media: sur40: Remove uninitialized_var() usage
    KVM: PPC: Book3S PR: Remove uninitialized_var() usage
    clk: spear: Remove uninitialized_var() usage
    clk: st: Remove uninitialized_var() usage
    spi: davinci: Remove uninitialized_var() usage
    ide: Remove uninitialized_var() usage
    rtlwifi: rtl8192cu: Remove uninitialized_var() usage
    b43: Remove uninitialized_var() usage
    drbd: Remove uninitialized_var() usage
    x86/mm/numa: Remove uninitialized_var() usage
    docs: deprecated.rst: Add uninitialized_var()

    Linus Torvalds
     

30 Jul, 2020

1 commit

  • Pull audit fixes from Paul Moore:
    "One small audit fix that you can hopefully merge before v5.8 is
    released. Unfortunately it is a revert of a patch that went in during
    the v5.7 window and we just recently started to see some bug reports
    relating to that commit.

    We are working on a proper fix, but I'm not yet clear on when that
    will be ready and we need to fix the v5.7 kernels anyway, so in the
    interest of time a revert seemed like the best solution right now"

    * tag 'audit-pr-20200729' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
    revert: 1320a4052ea1 ("audit: trigger accompanying records when no rules present")

    Linus Torvalds
     

29 Jul, 2020

1 commit

  • Unfortunately the commit listed in the subject line above failed
    to ensure that the task's audit_context was properly initialized/set
    before enabling the "accompanying records". Depending on the
    situation, the resulting audit_context could have invalid values in
    some of it's fields which could cause a kernel panic/oops when the
    task/syscall exists and the audit records are generated.

    We will revisit the original patch, with the necessary fixes, in a
    future kernel but right now we just want to fix the kernel panic
    with the least amount of added risk.

    Cc: stable@vger.kernel.org
    Fixes: 1320a4052ea1 ("audit: trigger accompanying records when no rules present")
    Reported-by: j2468h@googlemail.com
    Signed-off-by: Paul Moore

    Paul Moore
     

21 Jul, 2020

2 commits

  • In environments where the preservation of audit events and predictable
    usage of system memory are prioritized, admins may use a combination of
    --backlog_wait_time and -b options at the risk of degraded performance
    resulting from backlog waiting. In some cases, this risk may be
    preferred to lost events or unbounded memory usage. Ideally, this risk
    can be mitigated by making adjustments when backlog waiting is detected.

    However, detection can be difficult using the currently available
    metrics. For example, an admin attempting to debug degraded performance
    may falsely believe a full backlog indicates backlog waiting. It may
    turn out the backlog frequently fills up but drains quickly.

    To make it easier to reliably track degraded performance to backlog
    waiting, this patch makes the following changes:

    Add a new field backlog_wait_time_total to the audit status reply.
    Initialize this field to zero. Add to this field the total time spent
    by the current task on scheduled timeouts while the backlog limit is
    exceeded. Reset field to zero upon request via AUDIT_SET.

    Tested on Ubuntu 18.04 using complementary changes to the
    audit-userspace and audit-testsuite:
    - https://github.com/linux-audit/audit-userspace/pull/134
    - https://github.com/linux-audit/audit-testsuite/pull/97

    Signed-off-by: Max Englander
    Signed-off-by: Paul Moore

    Max Englander
     
  • audit_log_string() was inteded to be an internal audit function and
    since there are only two internal uses, remove them. Purge all external
    uses of it by restructuring code to use an existing audit_log_format()
    or using audit_log_format().

    Please see the upstream issue
    https://github.com/linux-audit/audit-kernel/issues/84

    Signed-off-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

17 Jul, 2020

1 commit

  • Using uninitialized_var() is dangerous as it papers over real bugs[1]
    (or can in the future), and suppresses unrelated compiler warnings
    (e.g. "unused variable"). If the compiler thinks it is uninitialized,
    either simply initialize the variable or make compiler changes.

    In preparation for removing[2] the[3] macro[4], remove all remaining
    needless uses with the following script:

    git grep '\buninitialized_var\b' | cut -d: -f1 | sort -u | \
    xargs perl -pi -e \
    's/\buninitialized_var\(([^\)]+)\)/\1/g;
    s:\s*/\* (GCC be quiet|to make compiler happy) \*/$::g;'

    drivers/video/fbdev/riva/riva_hw.c was manually tweaked to avoid
    pathological white-space.

    No outstanding warnings were found building allmodconfig with GCC 9.3.0
    for x86_64, i386, arm64, arm, powerpc, powerpc64le, s390x, mips, sparc64,
    alpha, and m68k.

    [1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/
    [2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/
    [3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/
    [4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/

    Reviewed-by: Leon Romanovsky # drivers/infiniband and mlx4/mlx5
    Acked-by: Jason Gunthorpe # IB
    Acked-by: Kalle Valo # wireless drivers
    Reviewed-by: Chao Yu # erofs
    Signed-off-by: Kees Cook

    Kees Cook
     

03 Jun, 2020

1 commit

  • Pull audit updates from Paul Moore:
    "Summary of the significant patches:

    - Record information about binds/unbinds to the audit multicast
    socket. This helps identify which processes have/had access to the
    information in the audit stream.

    - Cleanup and add some additional information to the netfilter
    configuration events collected by audit.

    - Fix some of the audit error handling code so we don't leak network
    namespace references"

    * tag 'audit-pr-20200601' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
    audit: add subj creds to NETFILTER_CFG record to
    audit: Replace zero-length array with flexible-array
    audit: make symbol 'audit_nfcfgs' static
    netfilter: add audit table unregister actions
    audit: tidy and extend netfilter_cfg x_tables
    audit: log audit netlink multicast bind and unbind
    audit: fix a net reference leak in audit_list_rules_send()
    audit: fix a net reference leak in audit_send_reply()

    Linus Torvalds
     

28 Apr, 2020

1 commit

  • Log information about programs connecting to and disconnecting from the
    audit netlink multicast socket. This is needed so that during
    investigations a security officer can tell who or what had access to the
    audit trail. This helps to meet the FAU_SAR.2 requirement for Common
    Criteria.

    Here is the systemd startup event:
    type=PROCTITLE msg=audit(2020-04-22 10:10:21.787:10) : proctitle=/init
    type=SYSCALL msg=audit(2020-04-22 10:10:21.787:10) : arch=x86_64 syscall=bind success=yes exit=0 a0=0x19 a1=0x555f4aac7e90 a2=0xc a3=0x7ffcb792ff44 items=0 ppid=0 pid=1 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=(none) ses=unset comm=systemd exe=/usr/lib/systemd/systemd subj=kernel key=(null)
    type=UNKNOWN[1335] msg=audit(2020-04-22 10:10:21.787:10) : pid=1 uid=root auid=unset tty=(none) ses=unset subj=kernel comm=systemd exe=/usr/lib/systemd/systemd nl-mcgrp=1 op=connect res=yes

    And events from the test suite that just uses close():
    type=PROCTITLE msg=audit(2020-04-22 11:47:08.501:442) : proctitle=/usr/bin/perl -w amcast_joinpart/test
    type=SYSCALL msg=audit(2020-04-22 11:47:08.501:442) : arch=x86_64 syscall=bind success=yes exit=0 a0=0x7 a1=0x563004378760 a2=0xc a3=0x0 items=0 ppid=815 pid=818 auid=root uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=ttyS0 ses=1 comm=perl exe=/usr/bin/perl subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
    type=UNKNOWN[1335] msg=audit(2020-04-22 11:47:08.501:442) : pid=818 uid=root auid=root tty=ttyS0 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 comm=perl exe=/usr/bin/perl nl-mcgrp=1 op=connect res=yes

    type=UNKNOWN[1335] msg=audit(2020-04-22 11:47:08.501:443) : pid=818 uid=root auid=root tty=ttyS0 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 comm=perl exe=/usr/bin/perl nl-mcgrp=1 op=disconnect res=yes

    And the events from the test suite using setsockopt with NETLINK_DROP_MEMBERSHIP:
    type=PROCTITLE msg=audit(2020-04-22 11:39:53.291:439) : proctitle=/usr/bin/perl -w amcast_joinpart/test
    type=SYSCALL msg=audit(2020-04-22 11:39:53.291:439) : arch=x86_64 syscall=bind success=yes exit=0 a0=0x7 a1=0x5560877c2d20 a2=0xc a3=0x0 items=0 ppid=772 pid=775 auid=root uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=ttyS0 ses=1 comm=perl exe=/usr/bin/perl subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
    type=UNKNOWN[1335] msg=audit(2020-04-22 11:39:53.291:439) : pid=775 uid=root auid=root tty=ttyS0 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 comm=perl exe=/usr/bin/perl nl-mcgrp=1 op=connect res=yes

    type=PROCTITLE msg=audit(2020-04-22 11:39:53.292:440) : proctitle=/usr/bin/perl -w amcast_joinpart/test
    type=SYSCALL msg=audit(2020-04-22 11:39:53.292:440) : arch=x86_64 syscall=setsockopt success=yes exit=0 a0=0x7 a1=SOL_NETLINK a2=0x2 a3=0x7ffc8366f000 items=0 ppid=772 pid=775 auid=root uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=ttyS0 ses=1 comm=perl exe=/usr/bin/perl subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
    type=UNKNOWN[1335] msg=audit(2020-04-22 11:39:53.292:440) : pid=775 uid=root auid=root tty=ttyS0 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 comm=perl exe=/usr/bin/perl nl-mcgrp=1 op=disconnect res=yes

    Please see the upstream issue tracker at
    https://github.com/linux-audit/audit-kernel/issues/28
    With the feature description at
    https://github.com/linux-audit/audit-kernel/wiki/RFE-Audit-Multicast-Socket-Join-Part
    The testsuite support is at
    https://github.com/rgbriggs/audit-testsuite/compare/ghak28-mcast-part-join
    https://github.com/linux-audit/audit-testsuite/pull/93
    And the userspace support patch is at
    https://github.com/linux-audit/audit-userspace/pull/114

    Signed-off-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

23 Apr, 2020

1 commit

  • If audit_list_rules_send() fails when trying to create a new thread
    to send the rules it also fails to cleanup properly, leaking a
    reference to a net structure. This patch fixes the error patch and
    renames audit_send_list() to audit_send_list_thread() to better
    match its cousin, audit_send_reply_thread().

    Reported-by: teroincn@gmail.com
    Reviewed-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Paul Moore
     

21 Apr, 2020

2 commits

  • If audit_send_reply() fails when trying to create a new thread to
    send the reply it also fails to cleanup properly, leaking a reference
    to a net structure. This patch fixes the error path and makes a
    handful of other cleanups that came up while fixing the code.

    Reported-by: teroincn@gmail.com
    Reviewed-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Paul Moore
     
  • Commit 756125289285 ("audit: always check the netlink payload length
    in audit_receive_msg()") fixed a number of missing message length
    checks, but forgot to check the length of userspace generated audit
    records. The good news is that you need CAP_AUDIT_WRITE to submit
    userspace audit records, which is generally only given to trusted
    processes, so the impact should be limited.

    Cc: stable@vger.kernel.org
    Fixes: 756125289285 ("audit: always check the netlink payload length in audit_receive_msg()")
    Reported-by: syzbot+49e69b4d71a420ceda3e@syzkaller.appspotmail.com
    Signed-off-by: Paul Moore

    Paul Moore
     

01 Apr, 2020

1 commit

  • Pull audit updates from Paul Moore:
    "We've got two audit patches for the v5.7 merge window with a stellar
    14 lines changed between the two patches. The patch descriptions are
    far more lengthy than the patches themselves, which is a very good
    thing for patches this size IMHO. The patches pass our test suites and
    a quick summary is below:

    - Stop logging inode information when updating an audit file watch.

    Since we are not changing the inode, or the fact that we are
    watching the associated file, the inode information is just noise
    that we can do without.

    - Fix a problem where mandatory audit records were missing their
    accompanying audit records (e.g. SYSCALL records were missing).

    The missing records often meant that we didn't have the necessary
    context to understand what was going on when the event occurred"

    * tag 'audit-pr-20200330' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
    audit: trigger accompanying records when no rules present
    audit: CONFIG_CHANGE don't log internal bookkeeping as an event

    Linus Torvalds
     

12 Mar, 2020

1 commit

  • When there are no audit rules registered, mandatory records (config,
    etc.) are missing their accompanying records (syscall, proctitle, etc.).

    This is due to audit context dummy set on syscall entry based on absence
    of rules that signals that no other records are to be printed.

    Clear the dummy bit if any record is generated.

    The proctitle context and dummy checks are pointless since the
    proctitle record will not be printed if no syscall records are printed.

    Please see upstream github issue
    https://github.com/linux-audit/audit-kernel/issues/120

    Signed-off-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

25 Feb, 2020

1 commit


10 Dec, 2019

1 commit

  • Add __rcu annotation to RCU-protected global pointer auditd_conn.

    auditd_conn is an RCU-protected global pointer,i.e., accessed
    via RCU methods rcu_dereference() and rcu_assign_pointer(),
    hence it must be annotated with __rcu for sparse to report
    warnings/errors correctly.

    Fix multiple instances of the sparse error:
    error: incompatible types in comparison expression
    (different address spaces)

    Reviewed-by: Joel Fernandes (Google)
    Signed-off-by: Amol Grover
    [PM: tweak subject line]
    Signed-off-by: Paul Moore

    Amol Grover
     

25 Oct, 2019

1 commit


04 Oct, 2019

1 commit

  • This renames the very specific audit_log_link_denied() to
    audit_log_path_denied() and adds the AUDIT_* type as an argument. This
    allows for the creation of the new AUDIT_ANOM_CREAT that can be used to
    report the fifo/regular file creation restrictions that were introduced
    in commit 30aba6656f61 ("namei: allow restricted O_CREAT of FIFOs and
    regular files").

    Signed-off-by: Kees Cook
    Signed-off-by: Paul Moore

    Kees Cook
     

09 Jul, 2019

1 commit

  • Pull audit updates from Paul Moore:
    "This pull request is a bit early, but with some vacation time coming
    up I wanted to send this out now just in case the remote Internet Gods
    decide not to smile on me once the merge window opens. The patchset
    for v5.3 is pretty minor this time, the highlights include:

    - When the audit daemon is sent a signal, ensure we deliver
    information about the sender even when syscall auditing is not
    enabled/supported.

    - Add the ability to filter audit records based on network address
    family.

    - Tighten the audit field filtering restrictions on string based
    fields.

    - Cleanup the audit field filtering verification code.

    - Remove a few BUG() calls from the audit code"

    * tag 'audit-pr-20190702' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
    audit: remove the BUG() calls in the audit rule comparison functions
    audit: enforce op for string fields
    audit: add saddr_fam filter field
    audit: re-structure audit field valid checks
    audit: deliver signal_info regarless of syscall

    Linus Torvalds
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not write to the free software foundation inc
    59 temple place suite 330 boston ma 02111 1307 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1334 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.113240726@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

22 May, 2019

1 commit

  • When a process signals the audit daemon (shutdown, rotate, resume,
    reconfig) but syscall auditing is not enabled, we still want to know the
    identity of the process sending the signal to the audit daemon.

    Move audit_signal_info() out of syscall auditing to general auditing but
    create a new function audit_signal_info_syscall() to take care of the
    syscall dependent parts for when syscall auditing is enabled.

    Please see the github kernel audit issue
    https://github.com/linux-audit/audit-kernel/issues/111

    Signed-off-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

21 Mar, 2019

1 commit

  • Currently the AUDIT_LOGIN event is a standalone record that isn't
    connected to any other records that may be part of its syscall event. To
    avoid the confusion of generating two events, connect the records by
    using its syscall context.

    Please see the github issue
    https://github.com/linux-audit/audit-kernel/issues/110

    Signed-off-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

04 Feb, 2019

1 commit

  • Remove audit_context from struct task_struct and struct audit_buffer
    when CONFIG_AUDIT is enabled but CONFIG_AUDITSYSCALL is not.

    Also, audit_log_name() (and supporting inode and fcaps functions) should
    have been put back in auditsc.c when soft and hard link logging was
    normalized since it is only used by syscall auditing.

    See github issue https://github.com/linux-audit/audit-kernel/issues/105

    Signed-off-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

31 Jan, 2019

1 commit

  • Don't fetch fcaps when umount2 is called to avoid a process hang while
    it waits for the missing resource to (possibly never) re-appear.

    Note the comment above user_path_mountpoint_at():
    * A umount is a special case for path walking. We're not actually interested
    * in the inode in this situation, and ESTALE errors can be a problem. We
    * simply want track down the dentry and vfsmount attached at the mountpoint
    * and avoid revalidating the last component.

    This can happen on ceph, cifs, 9p, lustre, fuse (gluster) or NFS.

    Please see the github issue tracker
    https://github.com/linux-audit/audit-kernel/issues/100

    Signed-off-by: Richard Guy Briggs
    [PM: merge fuzz in audit_log_fcaps()]
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

26 Jan, 2019

2 commits

  • V3 namespaced file capabilities were introduced in
    commit 8db6c34f1dbc ("Introduce v3 namespaced file capabilities")

    Add support for these by adding the "frootid" field to the existing
    fcaps fields in the NAME and BPRM_FCAPS records.

    Please see github issue
    https://github.com/linux-audit/audit-kernel/issues/103

    Signed-off-by: Richard Guy Briggs
    Acked-by: Serge Hallyn
    [PM: comment tweak to fit an 80 char line width]
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     
  • loginuid and sessionid (and audit_log_session_info) should be part of
    CONFIG_AUDIT scope and not CONFIG_AUDITSYSCALL since it is used in
    CONFIG_CHANGE, ANOM_LINK, FEATURE_CHANGE (and INTEGRITY_RULE), none of
    which are otherwise dependent on AUDITSYSCALL.

    Please see github issue
    https://github.com/linux-audit/audit-kernel/issues/104

    Signed-off-by: Richard Guy Briggs
    [PM: tweaked subject line for better grep'ing]
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

19 Jan, 2019

1 commit

  • Tie syscall information to all CONFIG_CHANGE calls since they are all a
    result of user actions.

    Exclude user records from syscall context:
    Since the function audit_log_common_recv_msg() is shared by a number of
    AUDIT_CONFIG_CHANGE and the entire range of AUDIT_USER_* record types,
    and since the AUDIT_CONFIG_CHANGE message type has been converted to a
    syscall accompanied record type, special-case the AUDIT_USER_* range of
    messages so they remain standalone records.

    See: https://github.com/linux-audit/audit-kernel/issues/59
    See: https://github.com/linux-audit/audit-kernel/issues/50

    Signed-off-by: Richard Guy Briggs
    [PM: fix line lengths in kernel/audit.c]
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

15 Jan, 2019

1 commit

  • The failure to add an audit rule due to audit locked gives no clue
    what CONFIG_CHANGE operation failed.
    Similarly the set operation is the only other operation that doesn't
    give the "op=" field to indicate the action.
    All other CONFIG_CHANGE records include an op= field to give a clue as
    to what sort of configuration change is being executed.

    Since these are the only CONFIG_CHANGE records that that do not have an
    op= field, add them to bring them in line with the rest.

    Old records:
    type=CONFIG_CHANGE msg=audit(1519812997.781:374): pid=610 uid=0 auid=0 ses=1 subj=... audit_enabled=2 res=0
    type=CONFIG_CHANGE msg=audit(2018-06-14 14:55:04.507:47) : audit_enabled=1 old=1 auid=unset ses=unset subj=... res=yes

    New records:
    type=CONFIG_CHANGE msg=audit(1520958477.855:100): pid=610 uid=0 auid=0 ses=1 subj=... op=add_rule audit_enabled=2 res=0

    type=CONFIG_CHANGE msg=audit(2018-06-14 14:55:04.507:47) : op=set audit_enabled=1 old=1 auid=unset ses=unset subj=... res=yes

    See: https://github.com/linux-audit/audit-kernel/issues/59

    Signed-off-by: Richard Guy Briggs
    [PM: fixed checkpatch.pl line length problems]
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

15 Dec, 2018

1 commit


04 Dec, 2018

1 commit

  • Since the vast majority of files (99.993% on a typical system) have no
    fcaps, display "0" instead of the full zero-padded 16 hex digits in the
    two PATH record cap_f* fields to save netlink bandwidth and disk space.

    Simply changing the format to %x won't work since the value is two (or
    possibly more in the future) 32-bit hexadecimal values concatenated and
    bits in higher order values will be misrepresented.

    Passes audit-testsuite and userspace tools already work fine.
    Please see the github issue tracker for more details
    https://github.com/linux-audit/audit-kernel/issues/101

    Signed-off-by: Richard Guy Briggs
    Acked-by: Steve Grubb
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

27 Nov, 2018

2 commits

  • There are many places, notably audit_log_task_info() and
    audit_log_exit(), that take task_struct pointers but in reality they
    are always working on the current task. This patch eliminates the
    task_struct arguments and uses current directly which allows a number
    of cleanups as well.

    Acked-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Paul Moore
     
  • There are some cases where we are making multiple audit_log_format()
    calls in a row, for no apparent reason. Squash these down to a
    single audit_log_format() call whenever possible.

    Acked-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Paul Moore
     

20 Nov, 2018

1 commit

  • There are still a couple of places (mark and watch config changes) that
    open code auid and ses fields in sequence in records instead of using
    the audit_log_session_info() helper. Use the helper. Adjust the helper
    to accommodate being the first fields. Passes audit-testsuite.

    Signed-off-by: Richard Guy Briggs
    [PM: fixed misspellings in the description]
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

18 Jul, 2018

1 commit

  • Commit c72051d5778a ("audit: use ktime_get_coarse_ts64() for time
    access") converted audit's use of current_kernel_time64() to the
    new ktime_get_coarse_ts64() function. Unfortunately this resulted
    in incorrect timestamps, e.g. events stamped with the year 1969
    despite it being 2018. This patch corrects this by using
    ktime_get_coarse_real_ts64() just like the current_kernel_time64()
    wrapper.

    Fixes: c72051d5778a ("audit: use ktime_get_coarse_ts64() for time access")
    Reviewed-by: Arnd Bergmann
    Signed-off-by: Paul Moore

    Paul Moore
     

03 Jul, 2018

1 commit


19 Jun, 2018

2 commits

  • Remove comparison of audit_enabled to magic numbers outside of audit.

    Related: https://github.com/linux-audit/audit-kernel/issues/86

    Signed-off-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     
  • The AUDIT_FILTER_TYPE name is vague and misleading due to not describing
    where or when the filter is applied and obsolete due to its available
    filter fields having been expanded.

    Userspace has already renamed it from AUDIT_FILTER_TYPE to
    AUDIT_FILTER_EXCLUDE without checking if it already exists. The
    userspace maintainer assures that as long as it is set to the same value
    it will not be a problem since the userspace code does not treat
    compiler warnings as errors. If this policy changes then checks if it
    already exists can be added at the same time.

    See: https://github.com/linux-audit/audit-kernel/issues/89

    Signed-off-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Richard Guy Briggs