[Oraclevm-errata] OVMSA-2013-0069 Important: Oracle VM 3.2 xen security update

Errata Announcements for Oracle VM oraclevm-errata at oss.oracle.com
Thu Sep 26 18:33:31 PDT 2013


Oracle VM Security Advisory OVMSA-2013-0069

The following updated rpms for Oracle VM 3.2 have been uploaded to the 
Unbreakable Linux Network:

x86_64:
xen-4.1.3-25.el5.53.23.x86_64.rpm
xen-devel-4.1.3-25.el5.53.23.x86_64.rpm
xen-tools-4.1.3-25.el5.53.23.x86_64.rpm


SRPMS:
http://oss.oracle.com/oraclevm/server/3.2/SRPMS-updates/xen-4.1.3-25.el5.53.23.src.rpm



Description of changes:

[4.1.3-25.el5.53.23]
- x86/xsave: initialize unused register state when restoring for guest
   In order to avoid leaking register contents from the prior use of the
   registers restored through xrstor due to a guest enabling certain xcr0
   bits late (particularly after the context restor in question), force
   restoring of all known registers (the ones that never got saved would
   be forced to their init state).
   This is CVE-2013-1442 / XSA-62.
   Signed-off-by: Jan Beulich <jbeulich at suse.com>
   Reviewed-by: Andrew Cooper <andrew.cooper3 at citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-1442}

[4.1.3-25.el5.53.22]
- libxl: suppress device assignment to HVM guest when there is no IOMMU
   This in effect copies similar logic from xend: While there's no way to
   check whether a device is assigned to a particular guest,
   XEN_DOMCTL_test_assign_device at least allows checking whether an
   IOMMU is there and whether a device has been assign to _some_
   guest.
   For the time being, this should be enough to cover for the missing
   error checking/recovery in other parts of libxl's device assignment
   paths.
   There remains a (functionality-, but not security-related) race in
   that the iommu should be set up earlier, but this is too risky a
   change for this stage of the 4.3 release.
   This is a security issue, XSA-61.
   Signed-off-by: Jan Beulich <jbeulich at suse.com>
   Tested-by: George Dunlap <george.dunlap at eu.citrix.com>
   Acked-by: George Dunlap <george.dunlap at eu.citrix.com>
   Acked-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-4329}

[4.1.3-25.el5.53.21]
- [PATCH 21/21] libxc: check blob size before proceeding in 
xc_dom_check_gzip
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Matthew Daley <mattjd at gmail.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   Reviewed-by: John Haxby <john.haxby at oracle.com>
   ch.patch [bug 17485456] {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.20]
- [PATCH 20/21] libxc: range checks in xc_dom_p2m_host and _guest
   These functions take guest pfns and look them up in the p2m.  They did
   no range checking.
   However, some callers, notably xc_dom_boot.c:setup_hypercall_page want
   to pass untrusted guest-supplied value(s).  It is most convenient to
   detect this here and return INVALID_MFN.
   This is part of the fix to a security issue, XSA-55.
   Changes from Xen 4.2 version of this patch:
   * 4.2 lacks dom->rambase_pfn, so don't add/subtract/check it.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.19]
- [PATCH 19/21] libxc: check return values from malloc
   A sufficiently malformed input to libxc (such as a malformed input ELF
   or other guest-controlled data) might cause one of libxc's malloc() to
   fail.  In this case we need to make sure we don't dereference or do
   pointer arithmetic on the result.
   Search for all occurrences of b(m|c|re)alloc in libxc, and all
   functions which call them, and add appropriate error checking where
   missing.
   This includes the functions xc_dom_malloc*, which now print a message
   when they fail so that callers don't have to do so.
   The function xc_cpuid_to_str wasn't provided with a sane return value
   and has a pretty strange API, which now becomes a little stranger.
   There are no in-tree callers.
   Changes in the Xen 4.2 version of this series:
   * No need to fix code relating to ARM.
   * No need to fix code relating to superpage support.
   * Additionally fix `dom->p2m_host = xc_dom_malloc...' in xc_dom_ia64.c.
   Changes in the Xen 4.1 version of this series:
   * An additional check is needed in xc_flask.c:xc_flask_access.
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.18]
- [PATCH 18/21] libxc: check failure of xc_dom_*_to_ptr, xc_map_foreign_r
   ange
   The return values from xc_dom_*_to_ptr and xc_map_foreign_range are
   sometimes dereferenced, or subjected to pointer arithmetic, without
   checking whether the relevant function failed and returned NULL.
   Add an appropriate error check at every call site.
   Changes in the 4.2 backport of this series:
   * Fix tools/libxc/xc_dom_x86.c:setup_pgtables_x86_32.
   * Fix tools/libxc/xc_dom_ia64.c:start_info_ia64.
   * Fix tools/libxc/ia64/xc_ia64_dom_fwloader.c:xc_dom_load_fw_kernel.
   Conflicts in the 4.1 backport of this series:
   * xc_dom_load_elf_kernel has less error handling in 4.1.
   * the VM generation ID code is not in 4.1.
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.17]
- [PATCH 17/21] libxc: Add range checking to xc_dom_binloader
   This is a simple binary image loader with its own metadata format.
   However, it is too careless with image-supplied values.
   Add the following checks:
   * That the image is bigger than the metadata table; otherwise the
   pointer arithmetic to calculate the metadata table location may
   yield undefined and dangerous values.
   * When clamping the end of the region to search, that we do not
   calculate pointers beyond the end of the image.  The C
   specification does not permit this and compilers are becoming ever
   more determined to miscompile code when they can "prove" various
   falsehoods based on assertions from the C spec.
   * That the supplied image is big enough for the text we are allegedly
   copying from it.  Otherwise we might have a read overrun and copy
   the results (perhaps a lot of secret data) into the guest.
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.16]
- [PATCH 16/21] libelf: abolish obsolete macros
   Abolish ELF_PTRVAL_[CONST_]{CHAR,VOID}; change uses to elf_ptrval.
   Abolish ELF_HANDLE_DECL_NONCONST; change uses to ELF_HANDLE_DECL.
   Abolish ELF_OBSOLETE_VOIDP_CAST; simply remove all uses.
   No functional change.  (Verified by diffing assembler output.)
   This is part of the fix to a security issue, XSA-55.
   Conflicts in the 4.1 backport:
   * elf_load_image is not in 4.1.
   * elf_note_numeric_array is not in 4.1.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.15]
- [PATCH 15/21] libelf: check loops for running away
   Ensure that libelf does not have any loops which can run away
   indefinitely even if the input is bogus.  (Grepped for bfor, bwhile
   and bgoto in libelf and xc_dom_*loader*.c.)
   Changes needed:
   * elf_note_next uses the note's unchecked alleged length, which might
   wrap round.  If it does, return ELF_MAX_PTRVAL (0xfff..fff) instead,
   which will be beyond the end of the section and so terminate the
   caller's loop.
   * In various loops over section and program headers, check that the
   calculated header pointer is still within the image, and quit the
   loop if it isn't.
   We have not changed loops which might, in principle, iterate over the
   whole image - even if they might do so one byte at a time with a
   nontrivial access check function in the middle.
   This is part of the fix to a security issue, XSA-55.
   Conflicts in Xen 4.1 version of the series:
   * Trivial conflict due to elf_note_numeric_array not existing.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.14]
- [PATCH 14/21] libxc: Introduce xc_bitops.h
   Copy the one file tools/libxc/xc_bitops.h from xen.git#aa1355f9.
   We will need this for the next patch, which calls for a bitmap in
   libxc.
   xc_bitops.h was introduced to unify various existing sets of bitmap
   operations.  In this patch we backport only the introduction, not the
   replacement of the other instances.  So we introduce another instance
   Sorry :-/.
   This is part of the fix to a security issue, XSA-55.
   This patch is unique to the Xen 4.1 version of the XSA-55 series.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.13]
- [PATCH 13/21] libelf: use only unsigned integers
   Signed integers have undesirable undefined behaviours on overflow.
   Malicious compilers can turn apparently-correct code into code with
   security vulnerabilities etc.
   So use only unsigned integers.  Exceptions are booleans (which we have
   already changed) and error codes.
   We _do_ change all the chars which aren't fixed constants from our own
   text segment, but not the char*s.  This is because it is safe to
   access an arbitrary byte through a char*, but not necessarily safe to
   convert an arbitrary value to a char.
   As a consequence we need to compile libelf with -Wno-pointer-sign.
   It is OK to change all the signed integers to unsigned because all the
   inequalities in libelf are in contexts where we don't "expect"
   negative numbers.
   In libelf-dominfo.c:elf_xen_parse we rename a variable "rc" to
   "more_notes" as it actually contains a note count derived from the
   input image.  The "error" return value from elf_xen_parse_notes is
   changed from -1 to ~0U.
   grepping shows only one occurrence of "PRId" or "%d" or "%ld" in
   libelf and xc_dom_elfloader.c (a "%d" which becomes "%u").
   This is part of the fix to a security issue, XSA-55.
   Conflicts in 4.1 series:
   * xc_dom_load_elf_kernel has no rc variable to change.
   * elf_load_image doesn't exist.
   For those concerned about unintentional functional changes, the
   following rune produces a version of the patch which is much smaller
   and eliminates only non-functional changes:
   GIT_EXTERNAL_DIFF=.../unsigned-differ git-diff <before>..<after>
[are git refs for the code before and after]
   this patch, and unsigned-differ is this shell script:
     set -e
   seddery () {
   perl -pe 's/b(?:elf_errorstatus|elf_negerrnoval)b/int/g'
   }
   path="$1"
   in="$2"
   out="$5"
   set +e
   diff -pu --label "$path~" <(seddery <"$in") --label "$path" <(seddery 
<"$out
   ")
   rc=$?
   set -e
   if [ $rc = 1 ]; then rc=0; fi
   exit $rc
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.12]
- [PATCH 12/21] libelf: use C99 bool for booleans
   We want to remove uses of "int" because signed integers have
   undesirable undefined behaviours on overflow.  Malicious compilers can
   turn apparently-correct code into code with security vulnerabilities
   etc.
   In this patch we change all the booleans in libelf to C99 bool,
   from <stdbool.h>.
   For the one visible libelf boolean in libxc's public interface we
   retain the use of int to avoid changing the ABI; libxc converts it to
   a bool for consumption by libelf.
   It is OK to change all values only ever used as booleans to _Bool
   (bool) because conversion from any scalar type to a _Bool works the
   same as the boolean test in if() or ?: and is always defined (C99
   6.3.1.2).  But we do need to check that all these variables really are
   only ever used that way.  (It is theoretically possible that the old
   code truncated some 64-bit values to 32-bit ints which might become
   zero depending on the value, which would mean a behavioural change in
   this patch, but it seems implausible that treating 0x????????00000000
   as false could have been intended.)
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.11]
- [PATCH 11/21] libelf: Make all callers call elf_check_broken
   This arranges that if the new pointer reference error checking
   tripped, we actually get a message about it.  In this patch these
   messages do not change the actual return values from the various
   functions: so pointer reference errors do not prevent loading.  This
   is for fear that some existing kernels might cause the code to make
   these wild references, which would then break, which is not a good
   thing in a security patch.
   In xen/arch/x86/domain_build.c we have to introduce an "out" label and
   change all of the "return rc" beyond the relevant point into "goto
   out".
   This is part of the fix to a security issue, XSA-55.
   Differences in 4.1 backport:
   * No xen/arch/arm.
   * There was less error handling in xen/arch/x86/domain_build.c
   so less need to change it.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>[PATCH 11/21] 
libelf: Make
   all callers call elf_check_broken
   This arranges that if the new pointer reference error checking
   tripped, we actually get a message about it.  In this patch these
   messages do not change the actual return values from the various
   functions: so pointer reference errors do not prevent loading.  This
   is for fear that some existing kernels might cause the code to make
   these wild references, which would then break, which is not a good
   thing in a security patch.
   In xen/arch/x86/domain_build.c we have to introduce an "out" label and
   change all of the "return rc" beyond the relevant point into "goto
   out".
   This is part of the fix to a security issue, XSA-55.
   Differences in 4.1 backport:
   * No xen/arch/arm.
   * There was less error handling in xen/arch/x86/domain_build.c
   so less need to change it.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.10]
- [PATCH 10/21] libelf: Check pointer references in elf_is_elfbinary
   elf_is_elfbinary didn't take a length parameter and could potentially
   access out of range when provided with a very short image.
   We only need to check the size is enough for the actual dereference in
   elf_is_elfbinary; callers are just using it to check the magic number
   and do their own checks (usually via the new elf_ptrval system) before
   dereferencing other parts of the header.
   This is part of the fix to a security issue, XSA-55.
   Conflicts in 4.1 backport:
   * xen/arch/x86/bzimage.c in 4.1 doesn't use elf_is_elfbinary.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.9]
- [PATCH 09/21] libelf: check all pointer accesses
   We change the ELF_PTRVAL and ELF_HANDLE types and associated macros:
   * PTRVAL becomes a uintptr_t, for which we provide a typedef
   elf_ptrval.  This means no arithmetic done on it can overflow so
   the compiler cannot do any malicious invalid pointer arithmetic
   "optimisations".  It also means that any places where we
   dereference one of these pointers without using the appropriate
   macros or functions become a compilation error.
   So we can be sure that we won't miss any memory accesses.
   All the PTRVAL variables were previously void* or char*, so
   the actual address calculations are unchanged.
   * ELF_HANDLE becomes a union, one half of which keeps the pointer
   value and the other half of which is just there to record the
   type.
   The new type is not a pointer type so there can be no address
   calculations on it whose meaning would change.  Every assignment or
   access has to go through one of our macros.
   * The distinction between const and non-const pointers and char*s
   and void*s in libelf goes away.  This was not important (and
   anyway libelf tended to cast away const in various places).
   * The fields elf->image and elf->dest are renamed.  That proves
   that we haven't missed any unchecked uses of these actual
   pointer values.
   * The caller may fill in elf->caller_xdest_base and _size to
   specify another range of memory which is safe for libelf to
   access, besides the input and output images.
   * When accesses fail due to being out of range, we mark the elf
   "broken".  This will be checked and used for diagnostics in
   a following patch.
   We do not check for write accesses to the input image.  This is
   because libelf actually does this in a number of places.  So we
   simply permit that.
   * Each caller of libelf which used to set dest now sets
   dest_base and dest_size.
   * In xc_dom_load_elf_symtab we provide a new actual-pointer
   value hdr_ptr which we get from mapping the guest's kernel
   area and use (checking carefully) as the caller_xdest area.
   * The STAR(h) macro in libelf-dominfo.c now uses elf_access_unsigned.
   * elf-init uses the new elf_uval_3264 accessor to access the 32-bit
   fields, rather than an unchecked field access (ie, unchecked
   pointer access).
   * elf_uval has been reworked to use elf_uval_3264.  Both of these
   macros are essentially new in this patch (although they are derived
   from the old elf_uval) and need careful review.
   * ELF_ADVANCE_DEST is now safe in the sense that you can use it to
   chop parts off the front of the dest area but if you chop more than
   is available, the dest area is simply set to be empty, preventing
   future accesses.
   * We introduce some #defines for memcpy, memset, memmove and strcpy:
   - We provide elf_memcpy_safe and elf_memset_safe which take
   PTRVALs and do checking on the supplied pointers.
   - Users inside libelf must all be changed to either
   elf_mem*_unchecked (which are just like mem*), or
   elf_mem*_safe (which take PTRVALs) and are checked.  Any
   unchanged call sites become compilation errors.
   * We do _not_ at this time fix elf_access_unsigned so that it doesn't
   make unaligned accesses.  We hope that unaligned accesses are OK on
   every supported architecture.  But it does check the supplied
   pointer for validity.
   This is part of the fix to a security issue, XSA-55.
   Additional change in 4.1 backport:
   * ELF_PRPTRVAL needs to be defined oddly on 4.1 and earlier because
   Xen's headers provide no definitions of uintptr_t or PRIuPTR.
   Conflicts:
   * Callers of elf_load_binary don't check its return value in 4.1.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.8]
- [PATCH 08/21] libelf: check nul-terminated strings properly
   It is not safe to simply take pointers into the ELF and use them as C
   pointers.  They might not be properly nul-terminated (and the pointers
   might be wild).
   So we are going to introduce a new function elf_strval for safely
   getting strings.  This will check that the addresses are in range and
   that there is a proper nul-terminated string.  Of course it might
   discover that there isn't.  In that case, it will be made to fail.
   This means that elf_note_name might fail, too.
   For the benefit of call sites which are just going to pass the value
   to a printf-like function, we provide elf_strfmt which returns
   "(invalid)" on failure rather than NULL.
   In this patch we introduce dummy definitions of these functions.  We
   introduce calls to elf_strval and elf_strfmt everywhere, and update
   all the call sites with appropriate error checking.
   There is not yet any semantic change, since before this patch all the
   places where we introduce elf_strval dereferenced the value anyway, so
   it mustn't have been NULL.
   In future patches, when elf_strval is made able return NULL, when it
   does so it will mark the elf "broken" so that an appropriate
   diagnostic can be printed.
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.7]
- [PATCH 07/21] tools/xcutils/readnotes: adjust print_l1_mfn_valid_note
   Use the new PTRVAL macros and elf_access_unsigned in
   print_l1_mfn_valid_note.
   No functional change unless the input is wrong, or we are reading a
   file for a different endianness.
   Separated out from the previous patch because this change does produce
   a difference in the generated code.
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   Reviewed-by: John Haxby <john.haxby at oracle.com>
   no.patch [bug 17485456] {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.6]
- [PATCH 06/21] libelf: introduce macros for memory access and pointer ha
   ndling
   We introduce a collection of macros which abstract away all the
   pointer arithmetic and dereferences used for accessing the input ELF
   and the output area(s).  We use the new macros everywhere.
   For now, these macros are semantically identical to the code they
   replace, so this patch has no functional change.
   elf_is_elfbinary is an exception: since it doesn't take an elf*, we
   need to handle it differently.  In a future patch we will change it to
   take, and check, a length parameter.  For now we just mark it with a
   fixme.
   Nontrivial differences in the 4.1 backport:
   * We need to provide our own elf_uintptr_t since Xen doesn't.
   * We see some additional differences in our verification diff.
   * The "function-filter" needs to massage additional symbol names.
   Conflicts:
   * In xc_dom_load_elf_symtab the old code used
   *(Elf64_Word*)(&shdr->e64.sh_name) and the new Elf32_Word
   but in fact the type in the struct has changed too so the
   new code using elf_store_field is still correct.
   * loadelfimage, elf_load_image etc. don't exist and are done
   directly with memcpy/memset; patch adjusted appropriately.
   * elf_note_numeric_array doesn't exist in 4.1.
   That this patch has no functional change can be verified as follows:
   0. Copy the scripts "comparison-generate" and "function-filter"
   out of this commit message.
   1. Check out the tree before this patch.
   2. Run the script ../comparison-generate .... ../before
   3. Check out the tree after this patch.
   4. Run the script ../comparison-generate .... ../after
   5. diff --exclude=*.[soi] -ruN before/ after/ |less
   Expect these differences:
   * stubdom/zlib-x86_64/ztest*.s2
   The filename of this test file apparently contains the pid.
   * stubdom/grub/kexec.s2:
   Large differences following ".section .debug_info" (which
   the 4.1 build system erroneously fails to suppress).
   * tools/libxc/xc_domain_restore.s2 (64-bit build):
   One trivial code gen difference with no semantic import.
   * xen/common/version.s2
   The xen build timestamp appears in two diff hunks.
   Verification that this is all that's needed:
   In a completely built xen.git,
   find * -name .*.d -type f | xargs grep -l libelf.h
   Expect results in:
   xen/arch/x86:            Checked above.
   tools/libxc:             Checked above.
   tools/xcutils/readnotes: Checked above.
   tools/xenstore:          Checked above.
   xen/common/libelf:
   This is the build for the hypervisor; checked in B above.
   stubdom:
   We have one stubdom which reads ELFs using our libelf,
   pvgrub, which is checked above.
   I have not done this verification for ARM.
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.5]
- [PATCH 05/21] libelf/xc_dom_load_elf_symtab: Do not use "syms" uninitia
   lised
   xc_dom_load_elf_symtab (with load==0) calls elf_round_up, but it
   mistakenly used the uninitialised variable "syms" when calculating
   dom->bsd_symtab_start.  This should be a reference to "elf".
   This change might have the effect of rounding the value differently.
   Previously if the uninitialised value (a single byte on the stack) was
   ELFCLASS64 (ie, 2), the alignment would be to 8 bytes, otherwise to 4.
   However, the value is calculated from dom->kernel_seg.vend so this
   could only make a difference if that value wasn't already aligned to 8
   bytes.
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.4]
- [PATCH 04/21] libelf: abolish elf_sval and elf_access_signed
   These are not used anywhere.
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.3]
- [PATCH 03/21] libxc: Fix range checking in xc_dom_pfn_to_ptr etc.
   * Ensure that xc_dom_pfn_to_ptr (when called with count==0) does not
   return a previously-allocated block which is entirely before the
   requested pfn (!)
   * Provide a version of xc_dom_pfn_to_ptr, xc_dom_pfn_to_ptr_retcount,
   which provides the length of the mapped region via an out parameter.
   * Change xc_dom_vaddr_to_ptr to always provide the length of the
   mapped region and change the call site in xc_dom_binloader.c to
   check it.  The call site in xc_dom_load_elf_symtab will be corrected
   in a forthcoming patch, and for now ignores the returned length.
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   v5: This patch is new in v5 of the series.
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.2]
- [PATCH 02/21] libxc: introduce xc_dom_seg_to_ptr_pages
   Provide a version of xc_dom_seg_to_ptr which returns the number of
   guest pages it has actually mapped.  This is useful for callers who
   want to do range checking; we will use this later in this series.
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}

[4.1.3-25.el5.53.1]
- [PATCH 01/21] libelf: abolish libelf-relocate.c
   This file is not actually used.  It's not built in Xen's instance of
   libelf; in libxc's it's built but nothing in it is called.  Do not
   compile it in libxc, and delete it.
   This reduces the amount of work we need to do in forthcoming patches
   to libelf (particularly since as libelf-relocate.c is not used it is
   probably full of bugs).
   This is part of the fix to a security issue, XSA-55.
   Signed-off-by: Ian Jackson <ian.jackson at eu.citrix.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   Signed-off-by: Chuck Anderson <chuck.anderson at oracle.com>
   {CVE-2013-2194,CVE-2013-2195,CVE-2013-2196}




More information about the Oraclevm-errata mailing list