Bug 884382
Summary: | list_all_interfaces can not list any interfaces with default flag | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | weizhang <weizhan> |
Component: | libvirt | Assignee: | Michal Privoznik <mprivozn> |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | low | Docs Contact: | |
Priority: | low | ||
Version: | 6.4 | CC: | berrange, cwei, dyuan, jdenemar, lcui, mzhan, rbalakri |
Target Milestone: | rc | Keywords: | Regression, Upstream |
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | libvirt-0.10.2-33.el6 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | 883775 | Environment: | |
Last Closed: | 2014-10-14 04:14:31 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
weizhang
2012-12-06 05:49:08 UTC
flags with 0 can not list interfaces, use flags in libvirt.h by default to list all of active and inactive interfaces VIR_CONNECT_LIST_INTERFACES_INACTIVE = 1 << 0 VIR_CONNECT_LIST_INTERFACES_ACTIVE = 1 << 1 patch sent https://www.redhat.com/archives/libvir-list/2013-May/msg01415.html It's not perl binding's issue, we need to fix it on libvirt side to keep the behaviour of virConnectListAllInterfaces consistent with other virConnectListAll APIs, the flag of 0 should list all of objects. other flags only generate a subset. commit 7ac2c4fe624f30f2c8270116513fa2ddab07631f Author: Guannan Ren <gren> Date: Tue May 21 21:29:38 2013 +0800 interface: list all interfaces with flags == 0 virConnectListAllInterfaces should support to list all of interfaces when the value of flags is 0. The behaviour is consistent with other virConnectListAll* APIs We need a follow up patches: commit 1f9dcbc7f1ad828a7233a1c04ad73734a02a399d Author: Osier Yang <jyang> AuthorDate: Wed May 22 13:12:34 2013 +0800 Commit: Osier Yang <jyang> CommitDate: Wed May 22 13:14:31 2013 +0800 Fix the syntax-check failure Introduced by commit 7ac2c4fe624, pushed under build-breaker rule. commit 244e0b8cf15ca2ef48d82058e728656e6c4bad11 Author: Daniel P. Berrange <berrange> AuthorDate: Fri Jun 28 13:21:33 2013 +0100 Commit: Daniel Veillard <veillard> CommitDate: Mon Jul 1 15:05:24 2013 +0800 Crash of libvirtd by unprivileged user in virConnectListAllInterfaces On Thu, Jun 27, 2013 at 03:56:42PM +0100, Daniel P. Berrange wrote: > Hi Security Team, > > I've discovered a way for an unprivileged user with a readonly connection > to libvirtd, to crash the daemon. Ok, the final patch for this is issue will be the simpler variant that Eric suggested The embargo can be considered to be lifted on Monday July 1st, at 0900 UTC The following is the GIT change that DV or myself will apply to libvirt GIT master immediately before the 1.1.0 release: >From 177b4165c531a4b3ba7f6ab6aa41dca9ceb0b8cf Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" <berrange> Date: Fri, 28 Jun 2013 10:48:37 +0100 Subject: [PATCH] CVE-2013-2218: Fix crash listing network interfaces with filters The virConnectListAllInterfaces method has a double-free of the 'struct netcf_if' object when any of the filtering flags cause an interface to be skipped over. For example when running the command 'virsh iface-list --inactive' This is a regression introduced in release 1.0.6 by commit 7ac2c4fe624f30f2c8270116513fa2ddab07631f Author: Guannan Ren <gren> Date: Tue May 21 21:29:38 2013 +0800 interface: list all interfaces with flags == 0 Signed-off-by: Daniel P. Berrange <berrange> I can reproduce this issue with: libvirt-0.10.2-29.el6.x86_64 perl-Sys-Virt-0.10.2-4.el6.x86_64 After execute the perl script, get the result as return Sys::Virt::NWFilters, details is: Sys::Virt::NWFilters=SCALAR(0x1955f40) Sys::Virt::NWFilters=SCALAR(0x1adcf28) Sys::Virt::NWFilters=SCALAR(0x1adcf58) Sys::Virt::NWFilters=SCALAR(0x1adcf88) Sys::Virt::NWFilters=SCALAR(0x1adcfb8) Sys::Virt::NWFilters=SCALAR(0x1adcfe8) Sys::Virt::NWFilters=SCALAR(0x1add018) Sys::Virt::NWFilters=SCALAR(0x1add048) Sys::Virt::NWFilters=SCALAR(0x1add078) Sys::Virt::NWFilters=SCALAR(0x1ad8f50) Sys::Virt::NWFilters=SCALAR(0x1ad8f80) Sys::Virt::NWFilters=SCALAR(0x1ad8fb0) Sys::Virt::NWFilters=SCALAR(0x1ad8fe0) Sys::Virt::NWFilters=SCALAR(0x1ad9010) Sys::Virt::NWFilters=SCALAR(0x1ad9040) Sys::Virt::NWFilters=SCALAR(0x1ad9070) Sys::Virt::NWFilters=SCALAR(0x1ad90a0) I verified the issue with: libvirt-0.10.2-40.el6.x86_64 perl-Sys-Virt-0.10.2-5.el6.x86_64 After execute the perl script, get the result as return Sys::Virt::NWFilter Sys::Virt::NWFilter=SCALAR(0xef2d78) Sys::Virt::NWFilter=SCALAR(0x107a528) Sys::Virt::NWFilter=SCALAR(0x107a558) Sys::Virt::NWFilter=SCALAR(0x107a588) Sys::Virt::NWFilter=SCALAR(0x107a5b8) Sys::Virt::NWFilter=SCALAR(0x107a5e8) Sys::Virt::NWFilter=SCALAR(0x107a618) Sys::Virt::NWFilter=SCALAR(0x107a648) Sys::Virt::NWFilter=SCALAR(0x107a678) Sys::Virt::NWFilter=SCALAR(0x107a6a8) Sys::Virt::NWFilter=SCALAR(0x1076650) Sys::Virt::NWFilter=SCALAR(0x1076680) Sys::Virt::NWFilter=SCALAR(0x10766b0) Sys::Virt::NWFilter=SCALAR(0x10766e0) Sys::Virt::NWFilter=SCALAR(0x1076710) Sys::Virt::NWFilter=SCALAR(0x1076740) Sys::Virt::NWFilter=SCALAR(0x1076770) Sys::Virt::NWFilter=SCALAR(0x10767a0) So change the status from 'ON_QA' to 'VERIFIED' Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2014-1374.html |