최근 glibc 관련 중대한 취약점이 발견 되었다.
C로 작성된 리눅스 프로그램들이 glibc 라이브러리를 참조 하기 때문에 현존하는 대부분의 리눅스 버전이 이 이슈에 해당이 된다.
리눅스로 구동되는 네트워크 장비, 공유기, 셋톱박스 등도 이 취약점에 노출이 되어 있으며 패치 후 reboot을 해야지만 적용이 가능하기 때문에 적용이 쉽지 않은 시스템도 많을 것이라 예상된다. 그리고 더 이상 기술지원이 힘든 네트워크 장비의 경우엔 훗날 해커들의 먹이감이 되기 쉽상 일거라 생각된다.
이에 레드햇이 긴급하게 패치를 발표 했으며 CentOS도 발빠르게 해당 패치버전의 gligc 패키지를 yum reposigory 에 올려 놓았다.
이 문서는 RHEL 6.x (CentOS 6.x) 기준 패치 방법이다.
My System Info
[root@Mapoo-Blog ~]# cat /etc/redhat-release CentOS release 6.5 (Final) [root@Mapoo-Blog ~]# rpm -qa | egrep 'glibc|nscd' glibc-2.12-1.132.el6.x86_64 glibc-headers-2.12-1.132.el6.x86_64 glibc-common-2.12-1.132.el6.x86_64 glibc-devel-2.12-1.132.el6.x86_64 # 현재 오픈된 파일들 중 glibc 를 참조하는 파일 확인하기 [root@Mapoo-Blog ~]# lsof | grep libc | awk '{print $1}' | sort | uniq awk bash crond grep httpd init lsof mingetty mysqld mysqld_sa proftpd rsyslogd sort sshd su uniq xinetd [root@Mapoo-Blog ~]# whereis bash bash: /bin/bash /usr/share/man/man1/bash.1.gz [root@Mapoo-Blog ~]# ldd /bin/bash linux-vdso.so.1 => (0x00007fff6bfff000) libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f23fddad000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f23fdba9000) libc.so.6 => /lib64/libc.so.6 (0x00007f23fd814000) /lib64/ld-linux-x86-64.so.2 (0x00007f23fdfd4000)
Patching
해당 포스팅의 맨아래 표를 확인해서 패치해야할 패키지들을 확인하고 업데이트 한다.
[root@Mapoo-Blog ~]# yum update -y glibc glibc-headers glibc-common glibc-devel Loaded plugins: downloadonly, fastestmirror Loading mirror speeds from cached hostfile * base: mirror.premi.st * extras: mirror.premi.st * updates: mirror.premi.st Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package glibc.x86_64 0:2.12-1.132.el6 will be updated ---> Package glibc.x86_64 0:2.12-1.149.el6_6.5 will be an update ---> Package glibc-common.x86_64 0:2.12-1.132.el6 will be updated ---> Package glibc-common.x86_64 0:2.12-1.149.el6_6.5 will be an update ---> Package glibc-devel.x86_64 0:2.12-1.132.el6 will be updated ---> Package glibc-devel.x86_64 0:2.12-1.149.el6_6.5 will be an update ---> Package glibc-headers.x86_64 0:2.12-1.132.el6 will be updated ---> Package glibc-headers.x86_64 0:2.12-1.149.el6_6.5 will be an update --> Finished Dependency Resolutio ~~ snip ~~ [root@Mapoo-Blog ~]# reboot
--> init 과 mingetty 를 reboot 없이 변경된 라이브러리를 참조 할 수 있게 하는건 힘들기 때문에 reboot을 진행해야만 한다.
rpm update 후 변경된 glibc를 참조 할 수 있도록 시스템을 reboot 한다.
버그 패치된 glibc-2.12-1.149.el6 버전으로 업데이트가 완료 된다.
아래는 관련 버그에 대한 레드햇 사이트의 정보이다.
맨 밑의 표는 버그패치된 glibc 관련 패키지들 목록이다.
목차
Critical: glibc security update
Details
Updated glibc packages that fix one security issue are now available for
Red Hat Enterprise Linux 6 and 7.
Red Hat Product Security has rated this update as having Critical security
impact. A Common Vulnerability Scoring System (CVSS) base score, which
gives a detailed severity rating, is available from the CVE link in the
References section.
The glibc packages provide the standard C libraries (libc), POSIX thread
libraries (libpthread), standard math libraries (libm), and the Name
Server Caching Daemon (nscd) used by multiple programs on the system.
Without these libraries, the Linux system cannot function correctly.
A heap-based buffer overflow was found in glibc's
__nss_hostname_digits_dots() function, which is used by the gethostbyname()
and gethostbyname2() glibc function calls. A remote attacker able to make
an application call either of these functions could use this flaw to
execute arbitrary code with the permissions of the user running the
application. (CVE-2015-0235)
Red Hat would like to thank Qualys for reporting this issue.
All glibc users are advised to upgrade to these updated packages, which
contain a backported patch to correct this issue.
아래 패키지들이 업데이트된 패키지들이다.
Updated packages
x86_64: | |
glibc-2.12-1.149.el6_6.5.i686.rpm | MD5: e74d0c2d56b3edcf9c62302739f7a66f SHA-256: af768fab88e794d09642bbc56e3d074fb0727b8cb947ea8e5da1719379d85890 |
glibc-2.12-1.149.el6_6.5.x86_64.rpm | MD5: 121ec8029f654e1f6139d396fe5a2aa5 SHA-256: 214b6c3489f2a1cba2900951cfcc0304cfe945b68fd240f6e9dfc89efe0d9944 |
glibc-common-2.12-1.149.el6_6.5.x86_64.rpm | MD5: e713d921cbef40a3c82892bc491821a8 SHA-256: 841933e08d0953a28ace0ec2b85cd684efbedc5d70e4111ce34b47a2fbf552d3 |
glibc-debuginfo-2.12-1.149.el6_6.5.i686.rpm | MD5: 7d6f3f7a2c1e335f0cfb392a2d74120d SHA-256: de9d1d999ca2003b51d37cabe0a9aa15dadd1c208b6bdeb13078dd871fd0ea8c |
glibc-debuginfo-2.12-1.149.el6_6.5.x86_64.rpm | MD5: ad2faceb5658d9e489e8c003c820de0f SHA-256: 8c38310178ce0f91d0efca47124deed7e70874beecb470b77ac3260b70b67b60 |
glibc-debuginfo-common-2.12-1.149.el6_6.5.i686.rpm | MD5: 38eec535262171d3cbe412cbcf157de1 SHA-256: 86e3eced3edaae6a5b89bf760a6faa1918cd8d3c14c8262ba0deb27ee45a4285 |
glibc-debuginfo-common-2.12-1.149.el6_6.5.x86_64.rpm | MD5: cfc5be0b86bb319c9f2422f52e2524a9 SHA-256: a7ba140533870f48e304320565e1b00c9e8c46a74297ee2f5611fb7bfebda4ad |
glibc-devel-2.12-1.149.el6_6.5.i686.rpm | MD5: a24ed6eb326fdbb63d1661e30d6f6ca1 SHA-256: 4ccafadc01edb36d5a6154b13355abff08a07f996f1bf8773eb2feba5947289a |
glibc-devel-2.12-1.149.el6_6.5.x86_64.rpm | MD5: 7ca63d098f690e0cfea29b73106977d9 SHA-256: 145f02f2e3e93ff40c46c167313a468be2772d1db8e1a4c5e92d17945bb22289 |
glibc-headers-2.12-1.149.el6_6.5.x86_64.rpm | MD5: 02b8367823348d05d73f000e157d0e03 SHA-256: 5ebd34d1f58b7bbdf44d02400209033367657cb340160a5b1f895f5f00200b57 |
glibc-static-2.12-1.149.el6_6.5.i686.rpm | MD5: e69a51f37fd6b52c660e6edb574dfa8f SHA-256: e0b488a8d3d5baa88a542600ff038935356577195ea33156d4e78d458a1a2183 |
glibc-static-2.12-1.149.el6_6.5.x86_64.rpm | MD5: f86c29cd612b1a5a3c1673fd51275499 SHA-256: a9baa29d247e1e1bf0f3497f422c6343a96984110938c558529d040b72614912 |
glibc-utils-2.12-1.149.el6_6.5.x86_64.rpm | MD5: 0e6d0c284e880f8378489feb9fba4288 SHA-256: 2b03ad7fe2caa4d3d81eb96aeda5b8b376ce3a1ffefa0b6b803a2360c3e94cd9 |
nscd-2.12-1.149.el6_6.5.x86_64.rpm | MD5: df196077209cd6c81c741fe7716faa98 |