25 Sep, 2018

1 commit

  • This changes UAPI, breaking iwd and libell:

    ell/key.c: In function 'kernel_dh_compute':
    ell/key.c:205:38: error: 'struct keyctl_dh_params' has no member named 'private'; did you mean 'dh_private'?
    struct keyctl_dh_params params = { .private = private,
    ^~~~~~~
    dh_private

    This reverts commit 8a2336e549d385bb0b46880435b411df8d8200e8.

    Fixes: 8a2336e549d3 ("uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name")
    Signed-off-by: Lubomir Rintel
    Signed-off-by: David Howells
    cc: Randy Dunlap
    cc: Mat Martineau
    cc: Stephan Mueller
    cc: James Morris
    cc: "Serge E. Hallyn"
    cc: Mat Martineau
    cc: Andrew Morton
    cc: Linus Torvalds
    cc:
    Signed-off-by: James Morris
    Signed-off-by: Greg Kroah-Hartman

    Lubomir Rintel
     

14 Sep, 2018

1 commit

  • This reverts commit 1f40a46cf47c12d93a5ad9dccd82bd36ff8f956a.

    It turned out that this patch is not sufficient to enable PTI on 32 bit
    systems with legacy 2-level page-tables. In this paging mode the huge-page
    PTEs are in the top-level page-table directory, where also the mirroring to
    the user-space page-table happens. So every huge PTE exits twice, in the
    kernel and in the user page-table.

    That means that accessed/dirty bits need to be fetched from two PTEs in
    this mode to be safe, but this is not trivial to implement because it needs
    changes to generic code just for the sake of enabling PTI with 32-bit
    legacy paging. As all systems that need PTI should support PAE anyway,
    remove support for PTI when 32-bit legacy paging is used.

    Fixes: 7757d607c6b3 ('x86/pti: Allow CONFIG_PAGE_TABLE_ISOLATION for x86_32')
    Reported-by: Meelis Roos
    Signed-off-by: Joerg Roedel
    Signed-off-by: Thomas Gleixner
    Cc: hpa@zytor.com
    Cc: linux-mm@kvack.org
    Cc: Linus Torvalds
    Cc: Andy Lutomirski
    Cc: Dave Hansen
    Cc: Borislav Petkov
    Cc: Andrea Arcangeli
    Link: https://lkml.kernel.org/r/1536922754-31379-1-git-send-email-joro@8bytes.org

    Joerg Roedel
     

07 Sep, 2018

1 commit


05 Sep, 2018

1 commit

  • Since this header is in "include/uapi/linux/", apparently people want to
    use it in userspace programs -- even in C++ ones. However, the header
    uses a C++ reserved keyword ("private"), so change that to "dh_private"
    instead to allow the header file to be used in C++ userspace.

    Fixes https://bugzilla.kernel.org/show_bug.cgi?id=191051
    Link: http://lkml.kernel.org/r/0db6c314-1ef4-9bfa-1baa-7214dd2ee061@infradead.org
    Fixes: ddbb41148724 ("KEYS: Add KEYCTL_DH_COMPUTE command")
    Signed-off-by: Randy Dunlap
    Reviewed-by: Andrew Morton
    Cc: David Howells
    Cc: James Morris
    Cc: "Serge E. Hallyn"
    Cc: Mat Martineau
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

04 Sep, 2018

1 commit

  • apparmor_secid_to_secctx() has a bad debug statement tripping on a
    condition handle by the code. When kconfig SECURITY_APPARMOR_DEBUG is
    enabled the debug WARN_ON will trip when **secdata is NULL resulting
    in the following trace.

    ------------[ cut here ]------------
    AppArmor WARN apparmor_secid_to_secctx: ((!secdata)):
    WARNING: CPU: 0 PID: 14826 at security/apparmor/secid.c:82 apparmor_secid_to_secctx+0x2b5/0x2f0 security/apparmor/secid.c:82
    Kernel panic - not syncing: panic_on_warn set ...

    CPU: 0 PID: 14826 Comm: syz-executor1 Not tainted 4.19.0-rc1+ #193
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
    __dump_stack lib/dump_stack.c:77 [inline]
    dump_stack+0x1c9/0x2b4 lib/dump_stack.c:113
    panic+0x238/0x4e7 kernel/panic.c:184
    __warn.cold.8+0x163/0x1ba kernel/panic.c:536
    report_bug+0x252/0x2d0 lib/bug.c:186
    fixup_bug arch/x86/kernel/traps.c:178 [inline]
    do_error_trap+0x1fc/0x4d0 arch/x86/kernel/traps.c:296
    do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:316
    invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:993
    RIP: 0010:apparmor_secid_to_secctx+0x2b5/0x2f0 security/apparmor/secid.c:82
    Code: c7 c7 40 66 58 87 e8 6a 6d 0f fe 0f 0b e9 6c fe ff ff e8 3e aa 44 fe 48 c7 c6 80 67 58 87 48 c7 c7 a0 65 58 87 e8 4b 6d 0f fe 0b e9 3f fe ff ff 48 89 df e8 fc a7 83 fe e9 ed fe ff ff bb f4
    RSP: 0018:ffff8801ba1bed10 EFLAGS: 00010286
    RAX: 0000000000000000 RBX: ffff8801ba1beed0 RCX: ffffc9000227e000
    RDX: 0000000000018482 RSI: ffffffff8163ac01 RDI: 0000000000000001
    RBP: ffff8801ba1bed30 R08: ffff8801b80ec080 R09: ffffed003b603eca
    R10: ffffed003b603eca R11: ffff8801db01f657 R12: 0000000000000001
    R13: 0000000000000000 R14: 0000000000000000 R15: ffff8801ba1beed0
    security_secid_to_secctx+0x63/0xc0 security/security.c:1314
    ctnetlink_secctx_size net/netfilter/nf_conntrack_netlink.c:621 [inline]
    ctnetlink_nlmsg_size net/netfilter/nf_conntrack_netlink.c:659 [inline]
    ctnetlink_conntrack_event+0x303/0x1470 net/netfilter/nf_conntrack_netlink.c:706
    nf_conntrack_eventmask_report+0x55f/0x930 net/netfilter/nf_conntrack_ecache.c:151
    nf_conntrack_event_report include/net/netfilter/nf_conntrack_ecache.h:112 [inline]
    nf_ct_delete+0x33c/0x5d0 net/netfilter/nf_conntrack_core.c:601
    nf_ct_iterate_cleanup+0x48c/0x5e0 net/netfilter/nf_conntrack_core.c:1892
    nf_ct_iterate_cleanup_net+0x23c/0x2d0 net/netfilter/nf_conntrack_core.c:1974
    ctnetlink_flush_conntrack net/netfilter/nf_conntrack_netlink.c:1226 [inline]
    ctnetlink_del_conntrack+0x66c/0x850 net/netfilter/nf_conntrack_netlink.c:1258
    nfnetlink_rcv_msg+0xd88/0x1070 net/netfilter/nfnetlink.c:228
    netlink_rcv_skb+0x172/0x440 net/netlink/af_netlink.c:2454
    nfnetlink_rcv+0x1c0/0x4d0 net/netfilter/nfnetlink.c:560
    netlink_unicast_kernel net/netlink/af_netlink.c:1317 [inline]
    netlink_unicast+0x5a0/0x760 net/netlink/af_netlink.c:1343
    netlink_sendmsg+0xa18/0xfc0 net/netlink/af_netlink.c:1908
    sock_sendmsg_nosec net/socket.c:621 [inline]
    sock_sendmsg+0xd5/0x120 net/socket.c:631
    ___sys_sendmsg+0x7fd/0x930 net/socket.c:2114
    __sys_sendmsg+0x11d/0x290 net/socket.c:2152
    __do_sys_sendmsg net/socket.c:2161 [inline]
    __se_sys_sendmsg net/socket.c:2159 [inline]
    __x64_sys_sendmsg+0x78/0xb0 net/socket.c:2159
    do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
    entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x457089
    Code: fd b4 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 3d 01 f0 ff ff 0f 83 cb b4 fb ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007f7bc6e03c78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 00007f7bc6e046d4 RCX: 0000000000457089
    RDX: 0000000000000000 RSI: 0000000020d65000 RDI: 0000000000000003
    RBP: 00000000009300a0 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00000000ffffffff
    R13: 00000000004d4588 R14: 00000000004c8d5c R15: 0000000000000000
    Dumping ftrace buffer:
    (ftrace buffer empty)
    Kernel Offset: disabled
    Rebooting in 86400 seconds..

    CC: #4.18
    Fixes: c092921219d2 ("apparmor: add support for mapping secids and using secctxes")
    Reported-by: syzbot+21016130b0580a9de3b5@syzkaller.appspotmail.com
    Signed-off-by: John Johansen

    John Johansen
     

25 Aug, 2018

2 commits

  • …git/jj/linux-apparmor

    Pull apparmor updates from John Johansen:
    "There is nothing major this time just four bug fixes and a patch to
    remove some dead code:

    Cleanups:
    - remove no-op permission check in policy_unpack

    Bug fixes:
    - fix an error code in __aa_create_ns()
    - fix failure to audit context info in build_change_hat
    - check buffer bounds when mapping permissions mask
    - fully initialize aa_perms struct when answering userspace query"

    * tag 'apparmor-pr-2018-08-23' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor:
    apparmor: remove no-op permission check in policy_unpack
    apparmor: fix an error code in __aa_create_ns()
    apparmor: Fix failure to audit context info in build_change_hat
    apparmor: Fully initialize aa_perms struct when answering userspace query
    apparmor: Check buffer bounds when mapping permissions mask

    Linus Torvalds
     
  • Pull namespace fixes from Eric Biederman:
    "This is a set of four fairly obvious bug fixes:

    - a switch from d_find_alias to d_find_any_alias because the xattr
    code perversely takes a dentry

    - two mutex vs copy_to_user fixes from Jann Horn

    - a fix to use a sanitized size not the size userspace passed in from
    Christian Brauner"

    * 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    getxattr: use correct xattr length
    sys: don't hold uts_sem while accessing userspace memory
    userns: move user access out of the mutex
    cap_inode_getsecurity: use d_find_any_alias() instead of d_find_alias()

    Linus Torvalds
     

23 Aug, 2018

2 commits

  • The patch 736ec752d95e: "AppArmor: policy routines for loading and
    unpacking policy" from Jul 29, 2010, leads to the following static
    checker warning:

    security/apparmor/policy_unpack.c:410 verify_accept()
    warn: bitwise AND condition is false here

    security/apparmor/policy_unpack.c:413 verify_accept()
    warn: bitwise AND condition is false here

    security/apparmor/policy_unpack.c
    392 #define DFA_VALID_PERM_MASK 0xffffffff
    393 #define DFA_VALID_PERM2_MASK 0xffffffff
    394
    395 /**
    396 * verify_accept - verify the accept tables of a dfa
    397 * @dfa: dfa to verify accept tables of (NOT NULL)
    398 * @flags: flags governing dfa
    399 *
    400 * Returns: 1 if valid accept tables else 0 if error
    401 */
    402 static bool verify_accept(struct aa_dfa *dfa, int flags)
    403 {
    404 int i;
    405
    406 /* verify accept permissions */
    407 for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) {
    408 int mode = ACCEPT_TABLE(dfa)[i];
    409
    410 if (mode & ~DFA_VALID_PERM_MASK)
    411 return 0;
    412
    413 if (ACCEPT_TABLE2(dfa)[i] & ~DFA_VALID_PERM2_MASK)
    414 return 0;

    fixes: 736ec752d95e ("AppArmor: policy routines for loading and unpacking policy")
    Reported-by: Dan Carpenter
    Signed-off-by: John Johansen

    John Johansen
     
  • Allow the initcall tables to be emitted using relative references that
    are only half the size on 64-bit architectures and don't require fixups
    at runtime on relocatable kernels.

    Link: http://lkml.kernel.org/r/20180704083651.24360-5-ard.biesheuvel@linaro.org
    Acked-by: James Morris
    Acked-by: Sergey Senozhatsky
    Acked-by: Petr Mladek
    Acked-by: Michael Ellerman
    Acked-by: Ingo Molnar
    Signed-off-by: Ard Biesheuvel
    Cc: Arnd Bergmann
    Cc: Benjamin Herrenschmidt
    Cc: Bjorn Helgaas
    Cc: Catalin Marinas
    Cc: James Morris
    Cc: Jessica Yu
    Cc: Josh Poimboeuf
    Cc: Kees Cook
    Cc: Nicolas Pitre
    Cc: Paul Mackerras
    Cc: Russell King
    Cc: "Serge E. Hallyn"
    Cc: Steven Rostedt
    Cc: Thomas Garnier
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ard Biesheuvel
     

22 Aug, 2018

1 commit


16 Aug, 2018

8 commits

  • …morris/linux-security

    Pull integrity updates from James Morris:
    "This adds support for EVM signatures based on larger digests, contains
    a new audit record AUDIT_INTEGRITY_POLICY_RULE to differentiate the
    IMA policy rules from the IMA-audit messages, addresses two deadlocks
    due to either loading or searching for crypto algorithms, and cleans
    up the audit messages"

    * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    EVM: fix return value check in evm_write_xattrs()
    integrity: prevent deadlock during digsig verification.
    evm: Allow non-SHA1 digital signatures
    evm: Don't deadlock if a crypto algorithm is unavailable
    integrity: silence warning when CONFIG_SECURITYFS is not enabled
    ima: Differentiate auditing policy rules from "audit" actions
    ima: Do not audit if CONFIG_INTEGRITY_AUDIT is not set
    ima: Use audit_log_format() rather than audit_log_string()
    ima: Call audit_log_string() rather than logging it untrusted

    Linus Torvalds
     
  • Pull TPM updates from James Morris:

    - Migrate away from PM runtime as explicit cmdReady/goIdle transactions
    for every command is a spec requirement. PM runtime adds only a layer
    of complexity on our case.

    - tpm_tis drivers can now specify the hwrng quality.

    - TPM 2.0 code uses now tpm_buf for constructing messages. Jarkko
    thinks Tomas Winkler has done the same for TPM 1.2, and will start
    digging those changes from the patchwork in the near future.

    - Bug fixes and clean ups

    * 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    ima: Get rid of ima_used_chip and use ima_tpm_chip != NULL instead
    ima: Use tpm_default_chip() and call TPM functions with a tpm_chip
    tpm: replace TPM_TRANSMIT_RAW with TPM_TRANSMIT_NESTED
    tpm: Convert tpm_find_get_ops() to use tpm_default_chip()
    tpm: Implement tpm_default_chip() to find a TPM chip
    tpm: rename tpm_chip_find_get() to tpm_find_get_ops()
    tpm: Allow tpm_tis drivers to set hwrng quality.
    tpm: Return the actual size when receiving an unsupported command
    tpm: separate cmd_ready/go_idle from runtime_pm
    tpm/tpm_i2c_infineon: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
    tpm_tis_spi: Pass the SPI IRQ down to the driver
    tpm: migrate tpm2_get_random() to use struct tpm_buf
    tpm: migrate tpm2_get_tpm_pt() to use struct tpm_buf
    tpm: migrate tpm2_probe() to use struct tpm_buf
    tpm: migrate tpm2_shutdown() to use struct tpm_buf

    Linus Torvalds
     
  • Pull smack updates from James Morris:
    "Minor fixes from Piotr Sawicki"

    * 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    Smack: Inform peer that IPv6 traffic has been blocked
    Smack: Check UDP-Lite and DCCP protocols during IPv6 handling
    Smack: Fix handling of IPv4 traffic received by PF_INET6 sockets

    Linus Torvalds
     
  • Pull crypto updates from Herbert Xu:
    "API:
    - Fix dcache flushing crash in skcipher.
    - Add hash finup self-tests.
    - Reschedule during speed tests.

    Algorithms:
    - Remove insecure vmac and replace it with vmac64.
    - Add public key verification for DH/ECDH.

    Drivers:
    - Decrease priority of sha-mb on x86.
    - Improve NEON latency/throughput on ARM64.
    - Add md5/sha384/sha512/des/3des to inside-secure.
    - Support eip197d in inside-secure.
    - Only register algorithms supported by the host in virtio.
    - Add cts and remove incompatible cts1 from ccree.
    - Add hisilicon SEC security accelerator driver.
    - Replace msm hwrng driver with qcom pseudo rng driver.

    Misc:
    - Centralize CRC polynomials"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (121 commits)
    crypto: arm64/ghash-ce - implement 4-way aggregation
    crypto: arm64/ghash-ce - replace NEON yield check with block limit
    crypto: hisilicon - sec_send_request() can be static
    lib/mpi: remove redundant variable esign
    crypto: arm64/aes-ce-gcm - don't reload key schedule if avoidable
    crypto: arm64/aes-ce-gcm - implement 2-way aggregation
    crypto: arm64/aes-ce-gcm - operate on two input blocks at a time
    crypto: dh - make crypto_dh_encode_key() make robust
    crypto: dh - fix calculating encoded key size
    crypto: ccp - Check for NULL PSP pointer at module unload
    crypto: arm/chacha20 - always use vrev for 16-bit rotates
    crypto: ccree - allow bigger than sector XTS op
    crypto: ccree - zero all of request ctx before use
    crypto: ccree - remove cipher ivgen left overs
    crypto: ccree - drop useless type flag during reg
    crypto: ablkcipher - fix crash flushing dcache in error path
    crypto: blkcipher - fix crash flushing dcache in error path
    crypto: skcipher - fix crash flushing dcache in error path
    crypto: skcipher - remove unnecessary setting of walk->nbytes
    crypto: scatterwalk - remove scatterwalk_samebuf()
    ...

    Linus Torvalds
     
  • Pull networking updates from David Miller:
    "Highlights:

    - Gustavo A. R. Silva keeps working on the implicit switch fallthru
    changes.

    - Support 802.11ax High-Efficiency wireless in cfg80211 et al, From
    Luca Coelho.

    - Re-enable ASPM in r8169, from Kai-Heng Feng.

    - Add virtual XFRM interfaces, which avoids all of the limitations of
    existing IPSEC tunnels. From Steffen Klassert.

    - Convert GRO over to use a hash table, so that when we have many
    flows active we don't traverse a long list during accumluation.

    - Many new self tests for routing, TC, tunnels, etc. Too many
    contributors to mention them all, but I'm really happy to keep
    seeing this stuff.

    - Hardware timestamping support for dpaa_eth/fsl-fman from Yangbo Lu.

    - Lots of cleanups and fixes in L2TP code from Guillaume Nault.

    - Add IPSEC offload support to netdevsim, from Shannon Nelson.

    - Add support for slotting with non-uniform distribution to netem
    packet scheduler, from Yousuk Seung.

    - Add UDP GSO support to mlx5e, from Boris Pismenny.

    - Support offloading of Team LAG in NFP, from John Hurley.

    - Allow to configure TX queue selection based upon RX queue, from
    Amritha Nambiar.

    - Support ethtool ring size configuration in aquantia, from Anton
    Mikaev.

    - Support DSCP and flowlabel per-transport in SCTP, from Xin Long.

    - Support list based batching and stack traversal of SKBs, this is
    very exciting work. From Edward Cree.

    - Busyloop optimizations in vhost_net, from Toshiaki Makita.

    - Introduce the ETF qdisc, which allows time based transmissions. IGB
    can offload this in hardware. From Vinicius Costa Gomes.

    - Add parameter support to devlink, from Moshe Shemesh.

    - Several multiplication and division optimizations for BPF JIT in
    nfp driver, from Jiong Wang.

    - Lots of prepatory work to make more of the packet scheduler layer
    lockless, when possible, from Vlad Buslov.

    - Add ACK filter and NAT awareness to sch_cake packet scheduler, from
    Toke Høiland-Jørgensen.

    - Support regions and region snapshots in devlink, from Alex Vesker.

    - Allow to attach XDP programs to both HW and SW at the same time on
    a given device, with initial support in nfp. From Jakub Kicinski.

    - Add TLS RX offload and support in mlx5, from Ilya Lesokhin.

    - Use PHYLIB in r8169 driver, from Heiner Kallweit.

    - All sorts of changes to support Spectrum 2 in mlxsw driver, from
    Ido Schimmel.

    - PTP support in mv88e6xxx DSA driver, from Andrew Lunn.

    - Make TCP_USER_TIMEOUT socket option more accurate, from Jon
    Maxwell.

    - Support for templates in packet scheduler classifier, from Jiri
    Pirko.

    - IPV6 support in RDS, from Ka-Cheong Poon.

    - Native tproxy support in nf_tables, from Máté Eckl.

    - Maintain IP fragment queue in an rbtree, but optimize properly for
    in-order frags. From Peter Oskolkov.

    - Improvde handling of ACKs on hole repairs, from Yuchung Cheng"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1996 commits)
    bpf: test: fix spelling mistake "REUSEEPORT" -> "REUSEPORT"
    hv/netvsc: Fix NULL dereference at single queue mode fallback
    net: filter: mark expected switch fall-through
    xen-netfront: fix warn message as irq device name has '/'
    cxgb4: Add new T5 PCI device ids 0x50af and 0x50b0
    net: dsa: mv88e6xxx: missing unlock on error path
    rds: fix building with IPV6=m
    inet/connection_sock: prefer _THIS_IP_ to current_text_addr
    net: dsa: mv88e6xxx: bitwise vs logical bug
    net: sock_diag: Fix spectre v1 gadget in __sock_diag_cmd()
    ieee802154: hwsim: using right kind of iteration
    net: hns3: Add vlan filter setting by ethtool command -K
    net: hns3: Set tx ring' tc info when netdev is up
    net: hns3: Remove tx ring BD len register in hns3_enet
    net: hns3: Fix desc num set to default when setting channel
    net: hns3: Fix for phy link issue when using marvell phy driver
    net: hns3: Fix for information of phydev lost problem when down/up
    net: hns3: Fix for command format parsing error in hclge_is_all_function_id_zero
    net: hns3: Add support for serdes loopback selftest
    bnxt_en: take coredump_record structure off stack
    ...

    Linus Torvalds
     
  • Pull Kbuild updates from Masahiro Yamada:

    - verify depmod is installed before modules_install

    - support build salt in case build ids must be unique between builds

    - allow users to specify additional host compiler flags via HOST*FLAGS,
    and rename internal variables to KBUILD_HOST*FLAGS

    - update buildtar script to drop vax support, add arm64 support

    - update builddeb script for better debarch support

    - document the pit-fall of if_changed usage

    - fix parallel build of UML with O= option

    - make 'samples' target depend on headers_install to fix build errors

    - remove deprecated host-progs variable

    - add a new coccinelle script for refcount_t vs atomic_t check

    - improve double-test coccinelle script

    - misc cleanups and fixes

    * tag 'kbuild-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (41 commits)
    coccicheck: return proper error code on fail
    Coccinelle: doubletest: reduce side effect false positives
    kbuild: remove deprecated host-progs variable
    kbuild: make samples really depend on headers_install
    um: clean up archheaders recipe
    kbuild: add %asm-generic to no-dot-config-targets
    um: fix parallel building with O= option
    scripts: Add Python 3 support to tracing/draw_functrace.py
    builddeb: Add automatic support for sh{3,4}{,eb} architectures
    builddeb: Add automatic support for riscv* architectures
    builddeb: Add automatic support for m68k architecture
    builddeb: Add automatic support for or1k architecture
    builddeb: Add automatic support for sparc64 architecture
    builddeb: Add automatic support for mips{,64}r6{,el} architectures
    builddeb: Add automatic support for mips64el architecture
    builddeb: Add automatic support for ppc64 and powerpcspe architectures
    builddeb: Introduce functions to simplify kconfig tests in set_debarch
    builddeb: Drop check for 32-bit s390
    builddeb: Change architecture detection fallback to use dpkg-architecture
    builddeb: Skip architecture detection when KBUILD_DEBARCH is set
    ...

    Linus Torvalds
     
  • Pull SELinux updates from Paul Moore:
    "There are 16 patches in here but really only one that is of any
    significance. That one patch is by nixiaoming and fixes a few places
    where we were not properly cleaning up dentry and inode objects in the
    selinuxfs error handling code. The rest are either printk->pr_*
    conversions, constification tweaks, and a minor tweak to MAINTAINERS.

    Everything passes the selinux-testsuite and looks to merge cleanly
    against your master branch"

    * tag 'selinux-pr-20180814' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
    selinux: cleanup dentry and inodes on error in selinuxfs
    selinux: constify write_op[]
    selinux: Cleanup printk logging in netnode
    selinux: Cleanup printk logging in avc
    selinux: Cleanup printk logging in netif
    selinux: Cleanup printk logging in netport
    selinux: Cleanup printk logging in sidtab
    selinux: Cleanup printk logging in netlink
    selinux: Cleanup printk logging in selinuxfs
    selinux: Cleanup printk logging in services
    selinux: Cleanup printk logging in avtab
    selinux: Cleanup printk logging in hooks
    selinux: Cleanup printk logging in policydb
    selinux: Cleanup printk logging in ebitmap
    selinux: Cleanup printk logging in conditional
    MAINTAINERS: update the LSM and SELinux subsystems

    Linus Torvalds
     
  • Pull security subsystem updates from James Morris:

    - kstrdup() return value fix from Eric Biggers

    - Add new security_load_data hook to differentiate security checking of
    kernel-loaded binaries in the case of there being no associated file
    descriptor, from Mimi Zohar.

    - Add ability to IMA to specify a policy at build-time, rather than
    just via command line params or by loading a custom policy, from
    Mimi.

    - Allow IMA and LSMs to prevent sysfs firmware load fallback (e.g. if
    using signed firmware), from Mimi.

    - Allow IMA to deny loading of kexec kernel images, as they cannot be
    measured by IMA, from Mimi.

    * 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    security: check for kstrdup() failure in lsm_append()
    security: export security_kernel_load_data function
    ima: based on policy warn about loading firmware (pre-allocated buffer)
    module: replace the existing LSM hook in init_module
    ima: add build time policy
    ima: based on policy require signed firmware (sysfs fallback)
    firmware: add call to LSM hook before firmware sysfs fallback
    ima: based on policy require signed kexec kernel images
    kexec: add call to LSM hook in original kexec_load syscall
    security: define new LSM hook named security_kernel_load_data
    MAINTAINERS: remove the outdated "LINUX SECURITY MODULE (LSM) FRAMEWORK" entry

    Linus Torvalds
     

15 Aug, 2018

1 commit

  • Pull hardened usercopy updates from Kees Cook:
    "This cleans up a minor Kconfig issue and adds a kernel boot option for
    disabling hardened usercopy for distro users that may have corner-case
    performance issues (e.g. high bandwidth small-packet UDP traffic).

    Summary:

    - drop unneeded Kconfig "select BUG" (Kamal Mostafa)

    - add "hardened_usercopy=off" rare performance needs (Chris von
    Recklinghausen)"

    * tag 'hardened-usercopy-v4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    usercopy: Allow boot cmdline disabling of hardening
    usercopy: Do not select BUG with HARDENED_USERCOPY

    Linus Torvalds
     

14 Aug, 2018

1 commit

  • Pull vfs open-related updates from Al Viro:

    - "do we need fput() or put_filp()" rules are gone - it's always fput()
    now. We keep track of that state where it belongs - in ->f_mode.

    - int *opened mess killed - in finish_open(), in ->atomic_open()
    instances and in fs/namei.c code around do_last()/lookup_open()/atomic_open().

    - alloc_file() wrappers with saner calling conventions are introduced
    (alloc_file_clone() and alloc_file_pseudo()); callers converted, with
    much simplification.

    - while we are at it, saner calling conventions for path_init() and
    link_path_walk(), simplifying things inside fs/namei.c (both on
    open-related paths and elsewhere).

    * 'work.open3' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (40 commits)
    few more cleanups of link_path_walk() callers
    allow link_path_walk() to take ERR_PTR()
    make path_init() unconditionally paired with terminate_walk()
    document alloc_file() changes
    make alloc_file() static
    do_shmat(): grab shp->shm_file earlier, switch to alloc_file_clone()
    new helper: alloc_file_clone()
    create_pipe_files(): switch the first allocation to alloc_file_pseudo()
    anon_inode_getfile(): switch to alloc_file_pseudo()
    hugetlb_file_setup(): switch to alloc_file_pseudo()
    ocxlflash_getfile(): switch to alloc_file_pseudo()
    cxl_getfile(): switch to alloc_file_pseudo()
    ... and switch shmem_file_setup() to alloc_file_pseudo()
    __shmem_file_setup(): reorder allocations
    new wrapper: alloc_file_pseudo()
    kill FILE_{CREATED,OPENED}
    switch atomic_open() and lookup_open() to returning 0 in all success cases
    document ->atomic_open() changes
    ->atomic_open(): return 0 in all success cases
    get rid of 'opened' in path_openat() and the helpers downstream
    ...

    Linus Torvalds
     

11 Aug, 2018

1 commit

  • The code in cap_inode_getsecurity(), introduced by commit 8db6c34f1dbc
    ("Introduce v3 namespaced file capabilities"), should use
    d_find_any_alias() instead of d_find_alias() do handle unhashed dentry
    correctly. This is needed, for example, if execveat() is called with an
    open but unlinked overlayfs file, because overlayfs unhashes dentry on
    unlink.
    This is a regression of real life application, first reported at
    https://www.spinics.net/lists/linux-unionfs/msg05363.html

    Below reproducer and setup can reproduce the case.
    const char* exec="echo";
    const char *newargv[] = { "echo", "hello", NULL};
    const char *newenviron[] = { NULL };
    int fd, err;

    fd = open(exec, O_PATH);
    unlink(exec);
    err = syscall(322/*SYS_execveat*/, fd, "", newargv, newenviron,
    AT_EMPTY_PATH);
    if(err
    Acked-by: Amir Goldstein
    Acked-by: Serge E. Hallyn
    Fixes: 8db6c34f1dbc ("Introduce v3 namespaced file capabilities")
    Cc: # v4.14
    Signed-off-by: Eddie Horng
    Signed-off-by: Eric W. Biederman

    Eddie.Horng
     

08 Aug, 2018

1 commit

  • If the resource requested by d_alloc_name is not added to the linked
    list through d_add, then dput needs to be called to release the
    subsequent abnormal branch to avoid resource leakage.

    Add missing dput to selinuxfs.c

    Signed-off-by: nixiaoming
    [PM: tweak the subject line]
    Signed-off-by: Paul Moore

    nixiaoming
     

03 Aug, 2018

1 commit


31 Jul, 2018

1 commit


28 Jul, 2018

2 commits


24 Jul, 2018

4 commits

  • Allow user to create, destroy, get and dump chain objects. Do that by
    extending rtnl commands by the chain-specific ones. User will now be
    able to explicitly create or destroy chains (so far this was done only
    automatically according the filter/act needs and refcounting). Also, the
    user will receive notification about any chain creation or destuction.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • In this patch we're sending an ICMPv6 message to a peer to
    immediately inform it that making a connection is not possible.
    In case of TCP connections, without this change, the peer
    will be waiting until a connection timeout is exceeded.

    Signed-off-by: Piotr Sawicki
    Signed-off-by: Casey Schaufler

    Piotr Sawicki
     
  • The smack_socket_sock_rcv_skb() function is checking smack labels
    only for UDP and TCP frames carried in IPv6 packets. From now on,
    it is able also to handle UDP-Lite and DCCP protocols.

    Signed-off-by: Piotr Sawicki
    Signed-off-by: Casey Schaufler

    Piotr Sawicki
     
  • A socket which has sk_family set to PF_INET6 is able to receive not
    only IPv6 but also IPv4 traffic (IPv4-mapped IPv6 addresses).

    Prior to this patch, the smk_skb_to_addr_ipv6() could have been
    called for socket buffers containing IPv4 packets, in result such
    traffic was allowed.

    Signed-off-by: Piotr Sawicki
    Signed-off-by: Casey Schaufler

    Piotr Sawicki
     

23 Jul, 2018

1 commit

  • In case of error, the function audit_log_start() returns NULL pointer
    not ERR_PTR(). The IS_ERR() test in the return value check should be
    replaced with NULL test.

    Fixes: fa516b66a1bf ("EVM: Allow runtime modification of the set of verified xattrs")
    Signed-off-by: Wei Yongjun
    Acked-by: Serge Hallyn
    Signed-off-by: Mimi Zohar

    Wei Yongjun
     

20 Jul, 2018

4 commits

  • Cleans up clang warning:
    warning: variable 'info' set but not used [-Wunused-but-set-variable]

    Fixes: 89dbf1962aa63 ("apparmor: move change_hat mediation to using labels")
    Reported-by: Colin Ian King
    Signed-off-by: John Johansen

    John Johansen
     
  • Fully initialize the aa_perms struct in profile_query_cb() to avoid the
    potential of using an uninitialized struct member's value in a response
    to a query from userspace.

    Detected by CoverityScan CID#1415126 ("Uninitialized scalar variable")

    Fixes: 4f3b3f2d79a4 ("apparmor: add profile permission query ability")
    Signed-off-by: Tyler Hicks
    Acked-by: Serge Hallyn
    Signed-off-by: John Johansen

    Tyler Hicks
     
  • Don't read past the end of the buffer containing permissions
    characters or write past the end of the destination string.

    Detected by CoverityScan CID#1415361, 1415376 ("Out-of-bounds access")

    Fixes: e53cfe6c7caa ("apparmor: rework perm mapping to a slightly broader set")
    Signed-off-by: Tyler Hicks
    Acked-by: Serge Hallyn
    Signed-off-by: John Johansen

    Tyler Hicks
     
  • Allow PTI to be compiled on x86_32.

    Signed-off-by: Joerg Roedel
    Signed-off-by: Thomas Gleixner
    Tested-by: Pavel Machek
    Cc: "H . Peter Anvin"
    Cc: linux-mm@kvack.org
    Cc: Linus Torvalds
    Cc: Andy Lutomirski
    Cc: Dave Hansen
    Cc: Josh Poimboeuf
    Cc: Juergen Gross
    Cc: Peter Zijlstra
    Cc: Borislav Petkov
    Cc: Jiri Kosina
    Cc: Boris Ostrovsky
    Cc: Brian Gerst
    Cc: David Laight
    Cc: Denys Vlasenko
    Cc: Eduardo Valentin
    Cc: Greg KH
    Cc: Will Deacon
    Cc: aliguori@amazon.com
    Cc: daniel.gruss@iaik.tugraz.at
    Cc: hughd@google.com
    Cc: keescook@google.com
    Cc: Andrea Arcangeli
    Cc: Waiman Long
    Cc: "David H . Gutteridge"
    Cc: joro@8bytes.org
    Link: https://lkml.kernel.org/r/1531906876-13451-38-git-send-email-joro@8bytes.org

    Joerg Roedel
     

18 Jul, 2018

5 commits

  • This patch aimed to prevent deadlock during digsig verification.The point
    of issue - user space utility modprobe and/or it's dependencies (ld-*.so,
    libz.so.*, libc-*.so and /lib/modules/ files) that could be used for
    kernel modules load during digsig verification and could be signed by
    digsig in the same time.

    First at all, look at crypto_alloc_tfm() work algorithm:
    crypto_alloc_tfm() will first attempt to locate an already loaded
    algorithm. If that fails and the kernel supports dynamically loadable
    modules, it will then attempt to load a module of the same name or alias.
    If that fails it will send a query to any loaded crypto manager to
    construct an algorithm on the fly.

    We have situation, when public_key_verify_signature() in case of RSA
    algorithm use alg_name to store internal information in order to construct
    an algorithm on the fly, but crypto_larval_lookup() will try to use
    alg_name in order to load kernel module with same name.

    1) we can't do anything with crypto module work, since it designed to work
    exactly in this way;
    2) we can't globally filter module requests for modprobe, since it
    designed to work with any requests.

    In this patch, I propose add an exception for "crypto-pkcs1pad(rsa,*)"
    module requests only in case of enabled integrity asymmetric keys support.
    Since we don't have any real "crypto-pkcs1pad(rsa,*)" kernel modules for
    sure, we are safe to fail such module request from crypto_larval_lookup().
    In this way we prevent modprobe execution during digsig verification and
    avoid possible deadlock if modprobe and/or it's dependencies also signed
    with digsig.

    Requested "crypto-pkcs1pad(rsa,*)" kernel module name formed by:
    1) "pkcs1pad(rsa,%s)" in public_key_verify_signature();
    2) "crypto-%s" / "crypto-%s-all" in crypto_larval_lookup().
    "crypto-pkcs1pad(rsa," part of request is a constant and unique and could
    be used as filter.

    Signed-off-by: Mikhail Kurinnoi
    Signed-off-by: Mimi Zohar

    include/linux/integrity.h | 13 +++++++++++++
    security/integrity/digsig_asymmetric.c | 23 +++++++++++++++++++++++
    security/security.c | 7 ++++++-
    3 files changed, 42 insertions(+), 1 deletion(-)

    Mikhail Kurinnoi
     
  • SHA1 is reasonable in HMAC constructs, but it's desirable to be able to
    use stronger hashes in digital signatures. Modify the EVM crypto code so
    the hash type is imported from the digital signature and passed down to
    the hash calculation code, and return the digest size to higher layers
    for validation.

    Signed-off-by: Matthew Garrett
    Signed-off-by: Mimi Zohar

    Matthew Garrett
     
  • When EVM attempts to appraise a file signed with a crypto algorithm the
    kernel doesn't have support for, it will cause the kernel to trigger a
    module load. If the EVM policy includes appraisal of kernel modules this
    will in turn call back into EVM - since EVM is holding a lock until the
    crypto initialisation is complete, this triggers a deadlock. Add a
    CRYPTO_NOLOAD flag and skip module loading if it's set, and add that flag
    in the EVM case in order to fail gracefully with an error message
    instead of deadlocking.

    Signed-off-by: Matthew Garrett
    Acked-by: Herbert Xu
    Signed-off-by: Mimi Zohar

    Matthew Garrett
     
  • When CONFIG_SECURITYFS is not enabled, securityfs_create_dir returns
    -ENODEV which throws the following error:
    "Unable to create integrity sysfs dir: -19"

    However, if the feature is disabled, it can't be warning and hence
    we need to silence the error. This patch checks for the error -ENODEV
    which is returned when CONFIG_SECURITYFS is disabled to stop the error
    being thrown.

    Signed-off-by: Sudeep Holla
    Acked-by: Matthew Garrett
    Signed-off-by: Mimi Zohar

    Sudeep Holla
     
  • The AUDIT_INTEGRITY_RULE is used for auditing IMA policy rules and
    the IMA "audit" policy action. This patch defines
    AUDIT_INTEGRITY_POLICY_RULE to reflect the IMA policy rules.

    Since we defined a new message type we can now also pass the
    audit_context and get an associated SYSCALL record. This now produces
    the following records when parsing IMA policy's rules:

    type=UNKNOWN[1807] msg=audit(1527888965.738:320): action=audit \
    func=MMAP_CHECK mask=MAY_EXEC res=1
    type=UNKNOWN[1807] msg=audit(1527888965.738:320): action=audit \
    func=FILE_CHECK mask=MAY_READ res=1
    type=SYSCALL msg=audit(1527888965.738:320): arch=c000003e syscall=1 \
    success=yes exit=17 a0=1 a1=55bcfcca9030 a2=11 a3=7fcc1b55fb38 \
    items=0 ppid=1567 pid=1601 auid=0 uid=0 gid=0 euid=0 suid=0 \
    fsuid=0 egid=0 sgid=0 fsgid=0 tty=tty2 ses=2 comm="echo" \
    exe="/usr/bin/echo" \
    subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)

    Signed-off-by: Stefan Berger
    Acked-by: Paul Moore
    Signed-off-by: Mimi Zohar

    Stefan Berger