openSUSE 安全性更新:dbus-1 (openSUSE-SU-2014:1228-1)

medium Nessus Plugin ID 77845

概要

遠端 openSUSE 主機缺少安全性更新。

說明

DBUS-1 已升級至上游版本 1.8。

此更新將 dbus 版本從不穩定的快照 1.7.4 (其中有數個迴歸問題) 升級到最新的穩定版本。

- 自 1.7.4 版起進行上游變更:

+ 安全性修正:

- 在 cmsg 訊息的填補中不接受額外的 fd,這可導致 4 位元組堆積緩衝區滿溢。(CVE-2014-3635、fdo#83622;Simon McVittie)

- 將每條訊息傳遞的最大 Unix 檔案描述符號數目預設從 1024 減少至 16,防止具有預設連線數量上限的 uid 在 Linux 的預設 rlimit 中耗盡系統匯流排的檔案描述符號。具受限 fd 限制的散發者或系統管理員,可能希望進一步降低這些限制。此外,在 Linux 上,這可防止再次發生拒絕服務;如果發生這種情況,可致使 dbus-daemon 超出每個 sendmsg() 的 fd 數目上限,並中斷本會收到這些 fd 的處理程序。
(CVE-2014-3636、fdo#82820;Alban Crequy)

- 在新的可設定限制 pending_fd_timeout (預設為 150 秒) 過去後,中斷仍具有擱置重新整理 fd 的連線,進而消除建立無法透過設定連線檔案描述符號之循環參照中斷的侵略性連線的可能性。
(CVE-2014-3637、fdo#80559;Alban Crequy)

- 將每個連線的最大擱置回覆數目預設從 8192 減小至 128,進而減輕演算法複雜性拒絕服務攻擊 (CVE-2014-3638、fdo#81053;Alban Crequy)

- 將系統匯流排上的驗證逾時預設從 30 秒減少至 5 秒,透過耗盡所有未經驗證的連線插槽來避免拒絕服務;當耗盡所有未經驗證的連線插槽時,封鎖新連線嘗試,而不是中斷連線。(CVE-2014-3639、fdo#80919;Alban Crequy)

- 在 Linux >0 2.6.37-rc4 中,若 sendmsg() 因 ETOOMANYREFS 而失敗,則以無訊息方式中斷訊息。如此可防止惡意用戶端讓 dbus-daemon 中斷與系統服務連線的攻擊,該攻擊是本機拒絕服務。(fdo#80163、CVE-2014-3532;
Alban Crequy)

- 連續多個訊息包含 fd 時,正確追蹤剩餘 Unix 檔案描述符號。
如此可防止惡意用戶端發動其他攻擊,造成 dbus-daemon 中斷與系統服務連線。
(fdo#79694、fdo#80469、CVE-2014-3533;Alejandro Martínez Suárez、Simon McVittie、Alban Crequy)

- Collabora Ltd. 的 Alban Crequy 發現並已修正 dbus-daemon (屬於 D-Bus 的參照實作) 中的拒絕服務瑕疵。此外,在極不常見的環境中,相同的瑕疵可導致不應能夠進行通訊的處理程序之間出現側通道。(CVE-2014-3477、fdo#78979)

+ 其他修正和增強功能:

- 檢查 systemd >= 209 是否具有 libsystemd,若找不到則使用較舊的獨立程式庫 (Umut Tezduyar Lindskog、Simon McVittie)

- 在 Linux 上使用 prctl(),停用測試可執行檔上的核心轉儲存,其可刻意提出 SIGSEGV 以測試 dbus-daemon 對於該情形的處理 (fdo#83772、Simon McVittie)

- 修正 --enable-stats 的編譯 (fdo#81043、Gentoo #507232;Alban Crequy)

- 改善 Windows 上的執行測試記錄 (fdo#41252、Ralf Habacker)

- dbus-launch --exit-with-session 啟動 dbus-daemon 後,卻無法按照預定附加至工作階段並終止 dbus-daemon (fdo#74698、Роман
Донченко
)

- 在 CMake 構建系統中,針對跨編譯 Windows D-Bus 二進位以在 Wine 下執行測試的 Linux 使用者新增部分提示 (fdo#41252、Ralf Habacker)

- 新增 Documentation 金鑰至 dbus.service (fdo#77447、Cameron Norman)

- 在「dbus-uuidgen --ensure」中,嘗試將 systemd 的 /etc/machine-id 複製到 /var/lib/dbus/machine-id,而非產生一個全新的 ID (fdo#77941、Simon McVittie)

- 如果 dbus-launch 很快就收到 X 錯誤,則不終止不相關的處理程序 (fdo#74698、Роман
Донченко
)

- 在 Windows 上,最多允許 8K 連線至 dbus-daemon,而非先前的 64 (fdo#71297;
Cristian Onet、Ralf Habacker)

- 解決迴歸測試中的 \r\n 新行,因為在 Windows 上的 dbus-daemon.exe 會使用文字模式 (fdo#75863、Руслан
Ижбулато
в)

- 增強 CMake 構建系統,以檢查 GLib 並編譯/執行迴歸測試的子集 (fdo#41252、fdo#73495;Ralf Habacker)

- 不仰賴 va_copy(),使用 DBUS_VA_COPY() 包裝函式 (fdo#72840、Ralf Habacker)

- 修正舊版 systemd 上的 systemd 日誌支援編譯,其中 sd-journal.h 不包含 syslog.h (fdo#73455、Ralf Habacker)

- 修正舊版 MSVC 上的編譯,納入 stdlib.h (fdo#73455、Ralf Habacker)

- 允許 <allow_anonymous/> 在隨附組態檔中顯示 (fdo#73475、Matt Hoosier)

- 如果測試因宣告失敗而損毀,則不再預設為封鎖,以便附加除錯程式。在您希望保有舊行為的環境中設定 DBUS_BLOCK_ON_ABORT。

- 為改善除錯能力,可在環境中設定 DBUS_TEST_DAEMON_ADDRESS,使外部 dbus-daemon 執行 dbus-daemon 和 dbus-daemon-eavesdrop 測試。忽略一般需要設定 dbus-daemon 的測試案例。

- 若不分派任何 INTERFACE 則不要求訊息 (fdo#68597、Simon McVittie)

- 記錄「tcp:bind=...」和「nonce-tcp:bind=...」(fdo#72301、Chengwei Yang)

- 定義「listenable」和「connectable」位址,並討論差異之處 (fdo#61303、Simon McVittie)

- 支援列印 dbus-send、dbus-monitor 中的 Unix 檔案描述符號 (fdo#70592、Robert Ancell)

- 若已指定 --disable-systemd 則不安裝 systemd 裝置 (fdo#71818、Chengwei Yang)

- 列出可啟用或作用中服務時,若發生記憶體不足,不會洩漏記憶體 (fdo#71526,Radoslaw Pajak)

- 修正迴歸測試中未定義的行為 (fdo#69924、DreamNik)

- 正確逸出 Unix 通訊端位址 (fdo#46013、Chengwei Yang)

- 在 SELinux 系統上,不假設 SECCLASS_DBUS、DBUS__ACQUIRE_SVC 和 DBUS__SEND_MSG 的數值與參照原則的值相等 (fdo#88719、osmond sun)

- 如果 MinGW < 4 標頭中遺漏,則定義 PROCESS_QUERY_LIMITED_INFORMATION (fdo#71366、Matt Fischer)

- 定義 WIN32_LEAN_AND_MEAN 避免 winsock.h 和 winsock2.h 之間發生衝突 (fdo#71405、Matt Fischer)

- 不從 _dbus_read_nonce() 傳回未設定錯誤的失敗,防止可能發生的損毀問題 (fdo#72298、Chengwei Yang)

- 在 BSD 系統上,避免部分 O(1)-per-process 記憶體和 fd 在 kqueue 中洩漏,防止測試失敗 (fdo#69332、fdo#72213;Chengwei Yang)

- 修正 Hurd 上的警告垃圾訊息,不在 Unix 通訊端上設定 SO_REUSEADDR,至少在 Linux 和 FreeBSD 上不會執行任何動作 (fdo#69492、Simon McVittie)

- 修正 FreeBSD 和 Hurd 上的 TCP 通訊端使用問題,容許 sendmsg() 的 EINVAL 的和 SCM_CREDS (以純文字 send() 重試),並且更準確地查找認證 (fdo#69492、Simon McVittie)

- 確保透過暫存 XDG_RUNTIME_DIR 執行的測試不會在 XDG/systemd「使用者工作階段」中遭到混用 (fdo#61301、Simon McVittie)

- 匯流排組態變更時,重新整理現有連線的已快取原則 (fdo#39463、Chengwei Yang)

- 現在若啟用 systemd 支援,則需要 libsystemd-journal。

- 在 systemd 下啟動非 systemd 服務時,在日誌中使用其匯流排名稱註解 stdout/stderr。已知限制:由於通訊端在分歧之前已開啟,因此處理程序仍會記錄為具有 dbus-daemon 的處理程序 ID 和使用者 ID。(fdo#68559、Chengwei Yang)

- 在 dbus-daemon(1) 中記錄更多組態元素 (fdo#69125、Chengwei Yang)

- 在 dbus_message_iter_get_args_valist() 解除封裝並遇到錯誤時,不洩漏字串陣列或 fds (fdo#21259、Chengwei Yang)

- 若使用 libaudit 編譯,則保留 CAP_AUDIT_WRITE,以便我們將不允許的方法呼叫寫入稽核記錄檔,修正 1.7.6 中的一個迴歸 (fdo#49062、Colin Walters)

- 比對規則中的 path_namespace=’/’ 曾存在錯誤,沒有任何相符項目;現在則完全相符。(fdo#70799、Simon McVittie)

- 不再支援透過 Linux 上的 dnotify 傳送目錄變更通知;其自從 2010 年後即未出現過任何成功編譯的案例。如果您沒有 inotify (Linux) 或 kqueue (*BSD),則需要將組態變更的 SIGHUP 傳送到 dbus-daemon。(fdo#33001、Chengwei Yang)

- 不再支援使用 --disable-userdb-cache 進行編譯;其至少從 2008 年後便無法運作,且即使可以運作,也會導致 dbus-daemon 速度極慢。
(fdo#15589、fdo#17133、fdo#66947;Chengwei Yang)

- DBUS_DISABLE_ASSERTS CMake 選項未確實停用大部分的宣告。已重新命名為 DBUS_DISABLE_ASSERT,與 Autotools 構建系統保持一致。(fdo#66142、Chengwei Yang)

- 唯有在 valgrind 可用時,--with-valgrind=auto 才會啟用 Valgrind 檢測。預設仍保持為

--with-valgrind=no。(fdo#56925、Simon McVittie)

- 不再支援沒有 64 位元整數類型的平台。(fdo#65429、Simon McVittie)

- 現已 (記錄為) 需要 GNU make。(fdo#48277、Simon McVittie)

- 在遺漏 dbus-glib 的情況下,即使測試不運用共用程式庫 (只有一個靜態複本),完整的測試涵蓋範圍也不再需要 dbus-glib。
(fdo#68852、Simon McVittie)

- D-Bus Specification 0.22

- 記錄 GetAdtAuditSessionData() 和 GetConnectionSELinuxSecurityContext() (fdo#54445、Simon)

- 修正 example .service 檔案 (fdo#66481、Chengwei Yang)

- 不將 D-Bus 宣告為「低延遲」(低於什麼?),對於其支援非同步使用,僅提供事實性陳述 (fdo#65141、Justin Lee)

- 記錄 .service 檔案的內容,以及系統服務檔案名稱受限的情況 (fdo#66608;Simon McVittie、Chengwei Yang)

- 即使未呼叫 dbus_threads_init_default(),也預設為確保所有平台上的執行緒安全。為與舊版 libdbus 保持相容,建議程式庫使用者持續呼叫 dbus_threads_init_default(),此舉無害。(fdo#54972、Simon McVittie)

- 新增 GetConnectionCredentials() 方法 (fdo#54445、Simon)

- 新的 API:dbus_setenv(),簡單的 setenv() 包裝函式。請注意,此項目的執行緒不安全。(fdo#39196、Simon)

- 新增 dbus-send --peer=ADDRESS (連線至指定的對等連線,例如先前版本中的 --address=ADDRESS) 和 dbus-send --bus=ADDRESS (連線至指定的匯流排,例如:dbus-monitor

--address=ADDRESS)。為確保回溯相容,仍會保留 dbus-send --address,但不再記錄該項目。
(fdo#48816、Andrey Mazo)

- 再次允許於 Windows 上使用「dbus-daemon --nofork」。
(fdo#68852、Simon McVittie)

- 避免在訊號中斷 waitpid() 時發生無限忙碌迴圈 (fdo#68945、Simon McVittie)

- 物件未匯出時,清理父項節點的記憶體 (fdo#60176、Thomas Fitzsimmons)

- 使 dbus_connection_set_route_peer_messages(x, FALSE) 如記載般運作。之前假定其第二個參數為 TRUE。(fdo#69165、Chengwei Yang)

- 正確地逸出包含非 ASCII 字元的位址 (fdo#53499、Chengwei Yang)

- 正確記錄 <servicedir> 搜尋順序 (fdo#66994、Chengwei Yang)

- 不使 1.7.4 版中迴歸的「dbus-send --session / x.y.z」發生損毀。(fdo#65923、Chengwei Yang)

- 如果 malloc() 在 _dbus_string_init() 或類似函式中傳回 NULL,不要在稍後釋出字串時,釋出無效的指標 (fdo#65959、Chengwei Yang)

- 如果 malloc() 在 dbus_set_error() 中傳回 NULL,不要 va_end() 從未 va_start()ed 的 va_list (fdo#66300、Chengwei Yang)

- 修正 --enable-stats 的構建失敗 (fdo#66004、Chengwei Yang)

- 修正平台上使用嚴格對齊的迴歸測試 (fdo#67279,Colin Walters)

- 避免呼叫函式參數 ‘interface’,因為部分 Windows 標頭擁有該名稱的命名空間污染巨集 (fdo#66493、Ivan Romanov)

- 各種 Doxygen 修正 (fdo#65755、Chengwei Yang)

- 針對靜態變數的多種執行緒安全性改善 (fdo#68610、Simon McVittie)

- 使 ‘make -j check’ 運作 (fdo#68852、Simon McVittie)

- 修正不太可能出現之錯誤路徑上的 NULL 指標解除參照 (fdo#69327、Sviatoslav Chagaev)

- 改善 valgrind 記憶體集區追蹤 (fdo#69326、Sviatoslav Chagaev)

- 不在 dbus-monitor 中過度配置記憶體 (fdo#69329、Sviatoslav Chagaev)

- dbus-monitor 可再次監控 dbus-daemon < 1.5.6 (fdo#66107、Chengwei Yang)

- 如果 accept4() 失敗並出現 EINVAL,當其可以位於包含較新 glibc 的較舊 Linux 核心上時,嘗試 accept() 而非進入忙碌迴圈。(fdo#69026、Chengwei Yang)

- 如果 socket() 或 socketpair() 失敗,並出現 EINVAL 或 EPROTOTYPE (例如在具有新 glibc 的 Hurd 或舊版 Linux 上),請在沒有 SOCK_CLOEXEC 的情況下嘗試。(fdo#69073;Pino Toscano、Chengwei Yang)

- 修正錯誤程式碼路徑上的檔案描述符號洩漏。
(fdo#69182、Sviatoslav Chagaev)

- dbus-run-session:清除部分不需要的環境變數 (fdo#39196、Simon)

- dbus-run-session:編譯 FreeBSD (fdo#66197、Chengwei Yang)

- 若無 DISPLAY 則不使 autolaunch 測試失敗 (fdo#40352、Simon)

- 從 builddir 使用 dbus-launch 進行測試,而非從安裝的複本使用 (fdo#37849、Chengwei Yang)

- 如果無法使用 writev(),則修正編譯 (fdo#69409、Vasiliy Balyasnyy)

- 移除 LOCAL_CREDS 認證傳遞的損毀支援,並記錄每個使用的認證傳遞配置 (fdo#60340、Simon McVittie)

- 不假設 GNU coreutils 功能,使 autogen.sh 可在 *BSD 上執行 (fdo#35881、fdo#69787;Chengwei Yang)

- dbus-monitor:使其在 NetBSD 上具備可攜性 (fdo#69842、Chengwei Yang)

- dbus-launch:停止使用不可攜的 asprintf (fdo#37849、Simon)

- 改善 setuid 啟動協助程式的錯誤報告 (fdo#66728、Chengwei Yang)

- 從「dbus-daemon --help」移除不可用的命令行選項 (fdo#42441、Ralf Habacker)

- 透過未記錄的 AllocateAndGetTcpExTableFromStack 函式,新增在 Windows XP 上查找本機 TCPv4 用戶端認證的支援 (fdo#66060、Ralf Habacker)

- 修正不充分的相依性追蹤 (fdo#68505、Simon McVittie)

- 不納入 wspiapi.h,以修正一個編譯器警告 (fdo#68852、Simon McVittie)

- 新增 DBUS_ENABLE_ASSERT、DBUS_ENABLE_CHECKS,減少令人混淆的情況 (fdo#66142、Chengwei Yang)

- 改善 verbose-mode 輸出 (fdo#63047、Colin Walters)

- 整合 Autotools 和 CMake 版本 (fdo#64875、Ralf Habacker)

- 修正多種未使用的變數、異常的版本組態等等 (fdo#65712、fdo#65990、fdo#66005、fdo#66257、fdo#69165、fdo#69410、fdo#70218;Chengwei Yang、Vasiliy Balyasnyy)

- dbus-cve-2014-3533.patch:新增 CVE-2014-3533 的修補程式以修正 (fdo#63127) &bull; CVE-2012-3524:不存取環境變數 (fdo#52202) (fdo#51521、Dave Reisner) &bull; 從 DBusTransport 移除不正確的宣告 (fdo#51657、(fdo#51406、Simon McVittie) (fdo#51032、Simon McVittie) (fdo#34671、Simon McVittie) &middot;檢查 Unix 下的 CMake 是否具有 libpthread (fdo#47237、Simon McVittie) spec-compliance (fdo#48580、David Zeuthen) 使用 OpenBSD install(1) 時為非 root (fdo#48217、Antoine Jacoutot) (fdo#45896、Simon McVittie) (fdo#39549、Simon McVittie) 創造專屬的「所有項目聯盟 (union of everything)」類型 (fdo#11191, Simon find(1) (fdo#33840、Simon McVittie) (fdo#46273、Alban Crequy) 再次於 Win32 上使用,但不在 WinCE 上使用 (fdo#46049、Simon (fdo#47321、Andoni Morales Alastruey) (fdo#39231、fdo#41012;Simon McVittie)

- 新增 fdo#38005 的迴歸測試 (fdo#39836、Simon McVittie),其為用於啟動的服務檔案項目 (fdo#39230、Simon McVittie) (fdo#24317、#34870;Will Thompson、David Zeuthen、Simon McVittie) 並更完善地記錄 (fdo#31818、Will Thompson) &bull; 使匯流排程序實作多個介面 (fdo#33757、&bull; 最佳化 _dbus_string_replace_len 減少浪費情形 (fdo#21261、(fdo#35114、Simon McVittie) &bull; 將 dbus_type_is_valid 作為公用 API (fdo#20496、Simon McVittie) 新增至匯流排程序中的未知介面 (fdo#34527、Lennart Poettering) (fdo#32245;Javier Jard&oacute;n、Simon McVittie) &bull; 在內嵌環境中將 XDG_DATA_HOME 優先順序正確指定為高於 XDG_DATA_DIRS (fdo#34496) (fdo#19997、NB#219964;Simon McVittie) &bull; 為 Devhelp (fdo#13495) 安裝記錄和索引、布林值 (fdo#16338、NB#223152;Simon McVittie),傳送錯誤至 dbus-shared.h (fdo#34527、Lennart Poettering) 資料 (fdo#10887、Simon McVittie) .service 檔案時,(fdo#19159、Sven Herzberg) (fdo#35750、Colin Walters) (fdo#32805、Mark Brand) 可導致忙碌迴圈 (fdo#32992、NB#200248;&bull; 修正無法偵測抽象通訊端的支援 (fdo#29895) (fdo#32262、NB#180486) &bull; 改善部分錯誤程式碼路徑 (fdo#29981、fdo#32264、fdo#32262、fdo#33128、fdo#33277、fdo#33126、NB#180486) &bull; 避免編譯期間在 /tmp 中可能發生的符號連結攻擊 (fdo#32854) &bull;
清理無作用的程式碼 (fdo#25306、fdo#33128、fdo#34292、NB#180486) &bull; 改善 gcc malloc 註解 (fdo#32710) &bull; 記錄改善項目 (fdo#11190) &bull; 避免使用 readdir_r,其難以正確使用 (fdo#8284、fdo#15922、LP#241619) &bull;
處理 session.d、system.d 中的無效檔案 (fdo#19186、&bull; 不散發內嵌 builddir 的已產生檔案 (fdo#30285、fdo#34292) (fdo#33474、LP#381063) 隨附 lcov HTML 報告和
--enable-compiler-coverage (fdo#10887) &middot; 支援 credentials-passing (fdo#32542) &middot; 選擇加入執行緒安全功能 (fdo#33464)

解決方案

更新受影響的 dbus-1 套件。

另請參閱

https://bugzilla.novell.com/show_bug.cgi?id=896453

https://lists.opensuse.org/opensuse-updates/2014-09/msg00038.html

Plugin 詳細資訊

嚴重性: Medium

ID: 77845

檔案名稱: openSUSE-2014-558.nasl

版本: 1.6

類型: local

代理程式: unix

已發布: 2014/9/25

已更新: 2021/1/19

支援的感應器: Frictionless Assessment Agent, Frictionless Assessment AWS, Frictionless Assessment Azure, Nessus Agent, Nessus

風險資訊

VPR

風險因素: Critical

分數: 9.5

CVSS v2

風險因素: Medium

基本分數: 6.9

媒介: CVSS2#AV:L/AC:M/Au:N/C:C/I:C/A:C

弱點資訊

CPE: p-cpe:/a:novell:opensuse:dbus-1, p-cpe:/a:novell:opensuse:dbus-1-debuginfo, p-cpe:/a:novell:opensuse:dbus-1-debuginfo-32bit, p-cpe:/a:novell:opensuse:dbus-1-debugsource, p-cpe:/a:novell:opensuse:dbus-1-devel, p-cpe:/a:novell:opensuse:dbus-1-devel-32bit, p-cpe:/a:novell:opensuse:dbus-1-x11, p-cpe:/a:novell:opensuse:dbus-1-x11-debuginfo, p-cpe:/a:novell:opensuse:dbus-1-x11-debugsource, p-cpe:/a:novell:opensuse:libdbus-1-3, p-cpe:/a:novell:opensuse:libdbus-1-3-32bit, p-cpe:/a:novell:opensuse:libdbus-1-3-debuginfo, p-cpe:/a:novell:opensuse:libdbus-1-3-debuginfo-32bit, cpe:/o:novell:opensuse:13.1

必要的 KB 項目: Host/local_checks_enabled, Host/SuSE/release, Host/SuSE/rpm-list, Host/cpu

可被惡意程式利用: true

可輕鬆利用: Exploits are available

修補程式發佈日期: 2014/9/17

可惡意利用

Core Impact

參考資訊

CVE: CVE-2012-3524, CVE-2014-3477, CVE-2014-3532, CVE-2014-3533, CVE-2014-3635, CVE-2014-3636, CVE-2014-3637, CVE-2014-3638, CVE-2014-3639