--- kernel: + actions available with (any)uid == 0 vs. non-root + LSMs (everything under security/) +OK security/commoncap.c +OK cap_task_reparent_to_init() - for kthreads only +NDR security/dummy.c - would ruin OVZ security model - other modules/models +OK fs/fcntl.c - commented +BUR drivers/char/agp/frontend.c +OK drivers/acpi/asus_acpi.c +OK kernel/sysctl.c - safe due to mode &= ~0222 for !ve_accessible +BUR fs/umsdos/ioctl.c +BUR drivers/net/wan/sbni.c +BUR drivers/s390/crypto/z90main.c +BUR? drivers/net/ethertap.c +BUR fs/open.c capabilities actions available with CAPDEFAULTMASK vs. non-root +OK CAP_CHOWN +OK CAP_DAC_OVERRIDE (setublimit, ubstat are dealt with) +OK CAP_DAC_READ_SEARCH (ditto) +OK CAP_FOWNER +OK CAP_FSETID + CAP_KILL +WBR drivers/char/vt_ioctl.c: KDSIGACCEPT +R enhance check_kill_permission() with VPS check? +OK CAP_SETGID +OK sys_setgroups() (safe for invalid gidsetsize) +OK sys_setgroups16() (ditto) +? groups_alloc() not beancounted (but small) +OK (non-x86 32/64-bit compat wrappers are similar) +OK scm_check_creds() +OK CAP_SETUID +BUR setreuid, setuid, setresuid may fail with EAGAIN +OK alloc_uid(), find_user() - are they VPS-aware? +OK are unused user_struct's freed? - YES +OK sys_setluid() - better check ve_is_super() first +OK scm_check_creds() (same as CAP_SETGID) +OK CAP_LINUX_IMMUTABLE +OK CAP_NET_BIND_SERVICE - may be unsafe for non-IP protos +OK CAP_NET_BROADCAST - unused, better drop it +B CAP_NET_RAW +OK t sniffing - only traffic of the same VPS +OK t PF_PACKET, SOCK_RAW, SOCK_PACKET raw packet injections: non-IP should be disallowed spoofed source should be disallowed +OK t PF_INET, SOCK_RAW, IPPROTO_ICMP +OK t PF_INET, SOCK_RAW, IPPROTO_RAW PF_PACKET SOCK_PACKET +OK t up on venet0:1, bind, connect +BR SO_BINDTODEVICE - non-NUL-terminated devname[] SOCK_RAW ip_options_compile() - allow arbitrary IP opts? net/packet/af_packet.c - net/bluetooth/hci_sock.c - net/bluetooth/l2cap.c - net/ipv6/datagram.c - net/ipv6/af_inet6.c - net/wanrouter/af_wanpipe.c CAP_IPC_LOCK - intentional, supposed to be beancounted? hugetlbfs shmctl() SHM_LOCK, SHM_UNLOCK + mlock, munlock, mlockall, munlockall syscalls +BUR sys_mlock() int overflow, RLIMIT_MEMLOCK bypass +BUR do_mmap_pgoff() ditto +OK if VM_LOCKED set, beancounted as such +OK CAP_IPC_OWNER +OK CAP_SYS_CHROOT +BF CAP_SYS_PTRACE - problem on ia64 +BF arch/ia64/kernel/perfmon.c - need VPS check? +OK fs/proc/base.c - due to find_task_by_pid_ve() +BF kernel/ptrace.c - ia64 not patched: +BF arch/ia64/kernel/ptrace.c +OK security/commoncap.c - not a complete check +BR CAP_SYS_PACCT +BR no virtualization (but not enabled by default) +OK kernel/acct.c - no other OVZ-specific dangers +OK CAP_SYS_BOOT - proper virt in place, no other uses +OK CAP_SYS_NICE +OK set_one_prio() - needs same-VPS task anyway +OK sys_setpriority() +OK do_each_task_pid_ve(...PIDTYPE_PGID...) +OK while_each_task_pid_ve() - nop, but OK +OK do_each_thread_ve() +OK sys_nice() + setscheduler() +OK find_process_by_pid() +R t SCHED_FIFO, SCHED_RR (DoS "vzctl stop") +OK sys_sched_setaffinity() +BR CAP_SYS_RESOURCE +OK arch/sparc64/solaris/fs.c +WB drivers/char/hpet.c: HPET_IRQFREQ - non-default +WB drivers/char/rtc.c +WB RTC_PIE_ON - changes hw config +WB RTC_IRQP_SET - ditto +OK t chrdev_open() checks, see below +WB drivers/char/vt_ioctl.c: KDSKBENT - would be DoS +WB drivers/char/vt.c: vc_allocate() - ditto? +OK get_device_perms_ve() in chrdev_open() +OK t tested - open() given EACCES +OK fs/*/balloc.c +R fs/dquot.c: ignore_hardlimit() - irrelevant? +OK fs/vzdq_mgmt.c +OK do_vzquotactl() - CAP_SYS_ADMIN +OK vzquota_read_proc() - ditto +OK fs/vzdq_ugid.c: do_vzquotaugidctl() - ditto +OK fs/vzdq_ops.c: ignore_hardlimit() +OK ipc/msg.c: IPC_SET (beancounted, but nasty) +BR ipc/mqueue.c +BR queues_count not virtualized +WB mqueue_create() - would be int overflow +OK mq_attr_ok() - semi-OK (HARD_MSGMAX) +OK kernel/fork.c +OK kernel/sys.c: sys_setrlimit() +BF kernel/ub/ub_sys.c: sys_setublimit() +R CAP_SYS_TTY_CONFIG - why? +WB drivers/char/vt_ioctl.c - rely on chrdev_open() +OK fs/open.c: vhangup() - is this for getty? why? - drivers/s390/char/keyboard.c - security/selinux/hooks.c +OK CAP_MKNOD - fs/xfs/linux-2.6/xfs_ioctl.c +OK fs/namei.c +OK CAP_LEASE CAP_VE_SYS_ADMIN + fs/namespace.c +OK sys_umount(), do_umount() +B?R mount_is_safe(), do_loopback() +OK do_remount(), do_remount_sb() +R do_move_mount() - disallow? +OK do_new_mount() +OK fs/super.c: do_kern_mount() fs/quota.c: check_quotactl_valid() +OK ipc/msg.c: sys_msgctl() +OK ipc/sem.c: semctl_down() +OK ipc/shm.c: sys_shmctl(): IPC_RMID, IPC_SET +OK kernel/sys.c +OK sys_sethostname() +OK sys_setdomainname() +OK net/core/scm.c: scm_check_creds() +OK security/commoncap.c: cap_syslog(); do_syslog() CAP_VE_NET_ADMIN +OK drivers/net/tun.c (overrides uid check only) include/linux/security.h: cap_netlink_recv() net/core/rtnetlink.c net/ipv4/netfilter/ip_queue.c net/ipv6/netfilter/ip6_queue.c net/xfrm/xfrm_user.c net/core/dev.c: dev_ioctl(): SIOCSIFMTU +OK net/ipv4/netfilter/ip_tables.c +BF do_ipt_set_ctl() (already dealt with) +OK do_ipt_get_ctl() +OK IPT_SO_GET_INFO +OK IPT_SO_GET_ENTRIES +BR net/ipv4/devinet.c +BR+t all kmalloc()s are non-beancounted +BR+t no limit on number of interfaces net/ipv4/fib_frontend.c: +BR+t SIOCADDRT - no limit on number of routes +OK t SIOCDELRT - can't delete others' routes fib_semantics.c: fib_convert_rtentry() net/netlink/af_netlink.c: netlink_capable() netlink_bind() netlink_connect() netlink_sendmsg() +OK+t dropping of CAP_SETVEID +OK+t VE_CREATE +OK+t VE_ENTER +OK cap_set_full() (as used on exec) +OK uses of CAP_FULL_SET, CAP_INIT_EFF_SET missing restrictions for VPS root vs. host root and unsafe code in: + syscalls available to VPS root but not to users, from sysfuzzer: +BUR setuid (sys_setuid16) - sys_setuid(low2highuid(uid)) +OK setgid (sys_setgid16) - sys_setgid(low2highgid(gid)) +BUR setreuid - same as setuid() +OK setregid +OK sethostname - CAP_VE_SYS_ADMIN, virtualized +OK? setgroups (sys_setgroups16) - groups not beancounted +OK 95 fchown (sys_fchown16) - wrapper around sys_fchown() +OK syslog - CAP_VE_SYS_ADMIN in cap_syslog(), virtualized +OK setdomainname - CAP_VE_SYS_ADMIN, virtualized +BUR mlock - CAP_IPC_LOCK, beancounted; RLIMIT_MEMLOCK int-o +OK munlockall - CAP_IPC_LOCK +OK setresuid (sys_setresuid16) - same as setuid() +OK setresgid (sys_setresgid16) +BUR setreuid32 - same as setuid32() +OK setregid32 +OK? setgroups32 - groups array not beancounted +OK 207 fchown32 - not root-specific (but root has more privs) +BUR setresuid32 - same as setuid32() +OK setresgid32 +BUR setuid32 - no OVZ issues; up: fails on transient errors +OK setgid32 +BF setublimit, ubstat +OK not sysfuzzed: +OK reboot +OK vhangup (do_tty_hangup() is used from elsewhere anyway) + drivers/char/tty_io.c: do_tty_hangup() potentially missed by sysfuzzer: +OK 14 mknod - CAP_MKNOD for devices (will create any...) +OK 16 lchown (sys_lchown16) - wrapper around sys_lchown() + 21 mount - CAP_VE_SYS_ADMIN, see above +OK 22 umount (sys_oldumount) - wrapper around sys_umount() +OK 25 stime - CAP_SYS_TIME +BF 51 acct - CAP_SYS_PACCT (should drop it), not virtualized +OK 52 umount2 (sys_umount) - CAP_VE_SYS_ADMIN, reviewed above +OK 53 lock - non-existent +OK 56 mpx - non-existent +OK 61 chroot - CAP_SYS_CHROOT, classical break fixed elsewhere +OK 75 setrlimit - CAP_SYS_RESOURCE to raise, no OVZ specifics +OK 79 settimeofday - CAP_SYS_TIME +OK 87 swapon - CAP_SYS_ADMIN +OK 97 setpriority - not root-specific, CAP_SYS_NICE +OK 98 profil - non-existent +OK 101 ioperm (i386, x86_64) - CAP_SYS_RAWIO to turn_on +OK 110 iopl (i386, x86_64) - CAP_SYS_RAWIO to gain more privs +OK 115 swapoff - CAP_SYS_ADMIN (plus need access to device) 117 ipc (sys_shm*) +OK 127 create_module - non-existent +OK 128 init_module - CAP_SYS_MODULE +OK 129 delete_module - CAP_SYS_MODULE +OK? 131 quotactl - no code flaws, OVZ relevance unclear +OK 135 sysfs - not root-specific, virtualized +OK 138 setfsuid - sys_setfsuid(low2highuid(uid)); +OK 139 setfsgid - sys_setfsgid(low2highgid(gid)); +OK t 149 sysctl - not root-specific, virtualized +OK 151 munlock - not root-specific +OK 152 mlockall - CAP_IPC_LOCK, beancounted in mlock_fixup() +OK 154 sched_setparam - not root-specific, CAP_SYS_NICE +BF 156 sched_setscheduler - ditto + could set policy +OK 185 capset - not root-specific, CAP_SETPCAP for privs +OK 198 lchown32 - not root-specific (but root has more privs) +OK 212 chown32 - ditto +OK 215 setfsuid32 - never returns error, so missed by fuzzer +OK 216 setfsgid32 - ditto +OK pivot_root - CAP_SYS_ADMIN +OK setxattr, lsetxattr, fsetxattr - not root-specific +OK removexattr, lremovexattr, fremovexattr - ditto +OK 258 set_tid_address - not root-specific, virtualized +OK timer_settime - not root-specific +OK clock_settime - same as settimeofday - CAP_SYS_TIME +OK vserver - non-existent (obviously) +OK set_mempolicy - not root-specific +OK sys_kexec_load - non-existent +OK fairsched_mknod - CAP_SETVEID +OK fairsched_rmnod - CAP_SETVEID +OK fairsched_chwt - CAP_SETVEID +OK fairsched_mvpr - CAP_SETVEID +OK fairsched_rate - CAP_SETVEID +OK setluid - VE0 only (but some processing done pre-check) +OK lchmod - not root-specific +OK lutime - not root-specific + ioctls available to VPS root but not to users + brute-force all majors/minors and list open()able ones +OK c 1 3,5,8,9 - null,zero,random,urandom +R can exhaust kernel randomness - YES +R console keystrokes infoleaks + c 2 - Pseudo-TTY masters +BR kernel Oops +OK c 3 - Pseudo-TTY slaves +OK c 5 0,2 - tty,ptmx +OK c 128 - Unix98 PTY masters +OK c 136 - Unix98 PTY slaves +OK t sysctls (there's logic in the patch, but it should be tested) socket options ... copying from/to userspace: missing copy_{to,from}_user and equivalents +OK user_path_walk_link() (sys_lchmod, sys_lutime) ... +OK uses of __{get,put}_user where "non-underscored" are required +OK __get_user, __direct_get_user added with OVZ +OK __put_user, __direct_put_user added with OVZ +OK uses of __copy_{to,from}_user where "non-underscored" are req +OK get_futex_value_locked() - OK due to get_futex_key() missing checks of return values from the above race conditions (this list intersects with other parts of checklist...) in particular with syscall wrappers, if any +OK sys_quotactl(), compat_quotactl() +OK sys_wait4() in do_initproc_exit() +OK uses of sys_fairsched_{mknod,mvpr,rmnod}() - int args any others? +OK faudit_statfs() (sys_*statfs*) +BF do_add_counters() (only the ip_tables.c instance is fixed) +BF do_env_enter() temporary set_exec_env(get_ve0()), set_exec_ub(get_ub0()), etc. +OK is the exec_env pointer private to each task_struct? +OK is the exec_ub pointer private to each task_struct? +R is there really no way for current task to gain control? there must be no checks of non-current task's exec_env integer overflows especially when calculating required allocation sizes + with *[kv]malloc touched by the patch +BF ipt_table_info_alloc() with *[kv]malloc in mainstream, but VPS root triggerable missing bounds checking *memcpy* *strcpy, *strcat +OK net/ipv4/netfilter/ip_tables.c: IPT_SO_GET_INFO copy_{to,from}_user +BF t classical chroot break + PTRACE_ATTACH, kill, setpriority with matching UID +BR t host->VPS +OK t VPS->host, VPS-VPS (should get ESRCH?) +ND effect of host filesystem mount flags on VPS: +ND nosuid, nodev, noexec - ignored *[kv]mallocs of user-controlled amounts of memory with no sanity limits +OK *kmalloc introduced/patched in OVZ, including: +OK log_buf_len - where set? ve_log_init() - who calls it? +OK clone_sysctl_template() +OK alloc_ve_tty_driver() +OK VZCTL_ENV_CREATE_DATA: +OK ALLOC_ENVCTL() + *vmalloc introduced/patched in OVZ, including: +OK fairsched_do_dump() +OK page_beancounters_init() +OK sys_swapon() - requires CAP_SYS_ADMIN +OK ip_conntrack_init() +OK ip_nat_init() *kmalloc in mainstream which became VPS root triggerable net/compat.c? - for 64-bit archs (not root-only?) *vmalloc in mainstream which became VPS root triggerable +BUR other instances of do_replace() review all of the OVZ-introduced code in its entirety kernel/ub/* include/ub/* +BF do_env_enter() - capabilities set after veid - race? +B?F do_env_create() - same as above, but VE not yet running +OK do_initproc_exit() +OK compat_quotactl(), changes to sys_quotactl() +OK sys_sched_setscheduler() use in stop_machine() - back-port +OK arch/i386/kernel/i387.c - not sure why in OVZ, but OK + arch/i386/kernel/signal.c +OK restore_sigcontext(), setup_sigcontext() +OK setup_rt_frame() - *_sigsuspend(), do_signal() +/- arch/i386/kernel/traps.c +OK drivers/char/sysrq.c +/- include/asm-i386/uaccess.h - 4G/4G split +OK arch/i386/kernel/sys_i386.c ... identify potentially not beancounted / not limited resources +BR+t route table +BR+t interfaces (aliases) +OK+t loopback mounts - open and kernel_thread not allowed +BR+t bind mounts (no explicit limit, but counted against kmemsize) +BR+t tmpfs mounts (no explicit limit, but counted against dcache) +OK t tmpfs allocations (counted against shmpages) ... identify potential abuses of the scheduler +R t SCHED_FIFO, SCHED_RR (DoS "vzctl stop") ... user (and VPS root) triggerable printk() calls: within OVZ patch context non-rate-limited with user-controlled input (character strings only) elsewhere non-rate-limited with user-controlled input (character strings only) +OK attacks via corrupted filesystems - can't open loop devices - covert channels - explicitly exclude from audit mainstream kernel security bugs fixed after 2.6.8.1 --- user-space: +B vz* utils must not trust target VPS directory trees (they're /tmp-like) +BR what about host system's yum/rpm, does vzpkg use them on VPS? +BR cache-os, vzyum use host's yum on running VPS +BR vzrpm script uses host's rpm on running VPS +B vzrpm +OK rpm-4.4-vzctl.patch (OK, but insufficient) +BR other uses of chroot() in RPM; NSS, "." outside of chroot -? other patches in vzrpm when vz* utils enter a VPS context, can the VPS attack them? +BF do_env_enter() - capabilities set after veid - race? ... +BR perms on /vz/{private,root} should be 700 +R if not enforced, problems with host system UIDs matching VPS' +R potentially fd passing (host non-root + VPS root => host root) vzctl +NDR doc: warn about non-default capabilities +BR potential fd leaks into VPS (e.g., from vzctl's parent shell) +B?R fd's are closed _after_ the ioctl - but unptracable now +BR only first 16 fd's are closed + vzctl.spec: +BR "/bin/mknod /dev/vzctl c 126 0" - depends on umask ... + vzquota +R quotacheck.c - safe on stopped VPS, unsafe on running one + lstat() to open() race if running on live VPS + lstat() to chdir() race if running on live VPS + ".." might change if running on live VPS +OK quota_io.c: open_quota_file() set perms to 600, no other O_CREAT - ... (the rest of vzquota appears to be mostly non-security) + BuildRoot: %{_tmppath}/%{name}-%{version}-root - minor risk with rm -r --- infrastructure: signatures on downloadables, PGP key, signatures on the key where signatures are made (workstations vs. build servers)

    <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    这里只有精品视频