CVE-2004-1235 (CNNVD-200504-062)
中文标题:
Linux Kernel uselib()特权提升漏洞
英文标题:
Race condition in the (1) load_elf_library and (2) binfmt_aout function calls for uselib in Linux ke...
漏洞描述
中文描述:
Linux Kernel是开放源代码操作系统Linux的内核。 Linux二进制格式装载器(binary format loaders)uselib()函数存在缺陷,本地攻击者可以利用这个漏洞获得root用户权限。 Linux内核提供二进制格式装载器层来装载不同格式的程序如ELF或者a.out或其他的,内核也提供sys_uselib()函数装载对应的二进制程序。从binfmt_elf.c文件中对load_elf_library()的uselib函数分析,在对库的BRK段(VMA)处理上存在问题,此段通过current->mm->mmap_sem建立,当修改调用进程的内存布局时'信号灯'(semaphore)没有保持,这可以用来扰乱内存管理并提升特权。 部分源代码fs/binfmt_elf.c如下: static int load_elf_library(struct file *file) { [904] down_write(¤t->mm->mmap_sem); error = do_mmap(file, ELF_PAGESTART(elf_phdata->p_vaddr), (elf_phdata->p_filesz + ELF_PAGEOFFSET(elf_phdata->p_vaddr)), PROT_READ | PROT_WRITE | PROT_EXEC, MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE, (elf_phdata->p_offset - ELF_PAGEOFFSET(elf_phdata->p_vaddr))); up_write(¤t->mm->mmap_sem); if (error != ELF_PAGESTART(elf_phdata->p_vaddr)) goto out_free_ph; elf_bss = elf_phdata->p_vaddr + elf_phdata->p_filesz; padzero(elf_bss); len = ELF_PAGESTART(elf_phdata->p_filesz + elf_phdata->p_vaddr + ELF_MIN_ALIGN - 1); bss = elf_phdata->p_memsz + elf_phdata->p_vaddr; if (bss > len) do_brk(len, bss - len); 上面可以看到为了建立ELF二进制的数据段mmap_sem在调用do_brk()前释放,换句话说,查看mm/mmap.c文件中的sys_brk()可看出do_brk()必须以信号灯保持方式来调用。 再看下do_brk()代码: [1094] vma = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL); if (!vma) return -ENOMEM; vma->vm_mm = mm; vma->vm_start = addr; vma->vm_end = addr + len; vma->vm_flags = flags; vma->vm_page_prot = protection_map[flags & 0x0f]; vma->vm_ops = NULL; vma->vm_pgoff = 0; vma->vm_file = NULL; vma->vm_private_data = NULL; vma_link(mm, vma, prev, rb_link, rb_parent); rb_link和rb_parent由find_vma_prepare()查询,很明显,如果kmem_cache_alloc()调用休眠,由于进程的VMA列表和VMA RB-tree可以被其他线程更改,新建立的VMA描述符可以被插入到其他位置。导致特权提升
英文描述:
Race condition in the (1) load_elf_library and (2) binfmt_aout function calls for uselib in Linux kernel 2.4 through 2.429-rc2 and 2.6 through 2.6.10 allows local users to execute arbitrary code by manipulating the VMA descriptor.
CWE类型:
标签:
受影响产品
| 厂商 | 产品 | 版本 | 版本范围 | 平台 | CPE |
|---|---|---|---|---|---|
| avaya | mn100 | * | - | - |
cpe:2.3:a:avaya:mn100:*:*:*:*:*:*:*:*
|
| avaya | network_routing | * | - | - |
cpe:2.3:a:avaya:network_routing:*:*:*:*:*:*:*:*
|
| avaya | converged_communications_server | 2.0 | - | - |
cpe:2.3:h:avaya:converged_communications_server:2.0:*:*:*:*:*:*:*
|
| avaya | s8710 | r2.0.0 | - | - |
cpe:2.3:h:avaya:s8710:r2.0.0:*:*:*:*:*:*:*
|
| avaya | s8710 | r2.0.1 | - | - |
cpe:2.3:h:avaya:s8710:r2.0.1:*:*:*:*:*:*:*
|
| avaya | modular_messaging_message_storage_server | 1.1 | - | - |
cpe:2.3:o:avaya:modular_messaging_message_storage_server:1.1:*:*:*:*:*:*:*
|
| avaya | modular_messaging_message_storage_server | 2.0 | - | - |
cpe:2.3:o:avaya:modular_messaging_message_storage_server:2.0:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.0 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.0:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.1 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.1:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.2 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.2:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.3 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.3:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.4 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.4:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.5 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.5:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.6 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.6:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.7 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.7:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.8 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.8:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.9 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.9:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.10 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.10:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.11 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.11:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.12 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.12:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.13 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.13:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.14 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.14:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.15 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.15:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.16 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.16:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.17 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.17:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.18 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.18:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.19 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.19:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.20 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.20:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.21 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.21:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.22 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.22:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.23 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.23:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.23_ow2 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.23_ow2:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.24 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.24:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.24_ow1 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.24_ow1:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.25 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.25:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.26 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.26:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.27 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.27:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.28 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.28:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.4.29 | - | - |
cpe:2.3:o:linux:linux_kernel:2.4.29:rc2:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.0 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.0:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.1 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.1:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.2 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.2:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.3 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.3:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.4 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.4:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.5 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.5:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.6 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.6:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.7 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.7:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.8 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.8:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.9 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.9:2.6.20:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6.10 | - | - |
cpe:2.3:o:linux:linux_kernel:2.6.10:*:*:*:*:*:*:*
|
| linux | linux_kernel | 2.6_test9_cvs | - | - |
cpe:2.3:o:linux:linux_kernel:2.6_test9_cvs:*:*:*:*:*:*:*
|
| mandrakesoft | mandrake_linux | 9.2 | - | - |
cpe:2.3:o:mandrakesoft:mandrake_linux:9.2:*:*:*:*:*:*:*
|
| mandrakesoft | mandrake_linux | 10.0 | - | - |
cpe:2.3:o:mandrakesoft:mandrake_linux:10.0:*:*:*:*:*:*:*
|
| mandrakesoft | mandrake_linux | 10.1 | - | - |
cpe:2.3:o:mandrakesoft:mandrake_linux:10.1:*:*:*:*:*:*:*
|
| mandrakesoft | mandrake_linux_corporate_server | 2.1 | - | - |
cpe:2.3:o:mandrakesoft:mandrake_linux_corporate_server:2.1:*:*:*:*:*:*:*
|
| mandrakesoft | mandrake_linux_corporate_server | 3.0 | - | - |
cpe:2.3:o:mandrakesoft:mandrake_linux_corporate_server:3.0:*:*:*:*:*:*:*
|
| redhat | enterprise_linux | 3.0 | - | - |
cpe:2.3:o:redhat:enterprise_linux:3.0:*:advanced_servers:*:*:*:*:*
|
| redhat | enterprise_linux | 4.0 | - | - |
cpe:2.3:o:redhat:enterprise_linux:4.0:*:advanced_server:*:*:*:*:*
|
| redhat | enterprise_linux_desktop | 3.0 | - | - |
cpe:2.3:o:redhat:enterprise_linux_desktop:3.0:*:*:*:*:*:*:*
|
| redhat | enterprise_linux_desktop | 4.0 | - | - |
cpe:2.3:o:redhat:enterprise_linux_desktop:4.0:*:*:*:*:*:*:*
|
| redhat | fedora_core | core_1.0 | - | - |
cpe:2.3:o:redhat:fedora_core:core_1.0:*:*:*:*:*:*:*
|
| redhat | fedora_core | core_2.0 | - | - |
cpe:2.3:o:redhat:fedora_core:core_2.0:*:*:*:*:*:*:*
|
| redhat | fedora_core | core_3.0 | - | - |
cpe:2.3:o:redhat:fedora_core:core_3.0:*:*:*:*:*:*:*
|
| redhat | linux | 7.3 | - | - |
cpe:2.3:o:redhat:linux:7.3:*:i386:*:*:*:*:*
|
| redhat | linux | 9.0 | - | - |
cpe:2.3:o:redhat:linux:9.0:*:i386:*:*:*:*:*
|
| suse | suse_linux | 1.0 | - | - |
cpe:2.3:o:suse:suse_linux:1.0:*:desktop:*:*:*:*:*
|
| suse | suse_linux | 8 | - | - |
cpe:2.3:o:suse:suse_linux:8:*:enterprise_server:*:*:*:*:*
|
| suse | suse_linux | 8.1 | - | - |
cpe:2.3:o:suse:suse_linux:8.1:*:*:*:*:*:*:*
|
| suse | suse_linux | 8.2 | - | - |
cpe:2.3:o:suse:suse_linux:8.2:*:*:*:*:*:*:*
|
| suse | suse_linux | 9.0 | - | - |
cpe:2.3:o:suse:suse_linux:9.0:*:*:*:*:*:*:*
|
| suse | suse_linux | 9.1 | - | - |
cpe:2.3:o:suse:suse_linux:9.1:*:*:*:*:*:*:*
|
| suse | suse_linux | 9.2 | - | - |
cpe:2.3:o:suse:suse_linux:9.2:*:*:*:*:*:*:*
|
| ubuntu | ubuntu_linux | 4.1 | - | - |
cpe:2.3:o:ubuntu:ubuntu_linux:4.1:*:ia64:*:*:*:*:*
|
| avaya | intuity_audix | * | - | - |
cpe:2.3:a:avaya:intuity_audix:*:*:lx:*:*:*:*:*
|
| mandrakesoft | mandrake_multi_network_firewall | 8.2 | - | - |
cpe:2.3:a:mandrakesoft:mandrake_multi_network_firewall:8.2:*:*:*:*:*:*:*
|
| avaya | s8300 | r2.0.0 | - | - |
cpe:2.3:h:avaya:s8300:r2.0.0:*:*:*:*:*:*:*
|
| avaya | s8300 | r2.0.1 | - | - |
cpe:2.3:h:avaya:s8300:r2.0.1:*:*:*:*:*:*:*
|
| avaya | s8500 | r2.0.0 | - | - |
cpe:2.3:h:avaya:s8500:r2.0.0:*:*:*:*:*:*:*
|
| avaya | s8500 | r2.0.1 | - | - |
cpe:2.3:h:avaya:s8500:r2.0.1:*:*:*:*:*:*:*
|
| avaya | s8700 | r2.0.0 | - | - |
cpe:2.3:h:avaya:s8700:r2.0.0:*:*:*:*:*:*:*
|
| avaya | s8700 | r2.0.1 | - | - |
cpe:2.3:h:avaya:s8700:r2.0.1:*:*:*:*:*:*:*
|
| conectiva | linux | 10.0 | - | - |
cpe:2.3:o:conectiva:linux:10.0:*:*:*:*:*:*:*
|
解决方案
中文解决方案:
英文解决方案:
临时解决方案:
参考链接
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
cve.org
exploitdb
exploitdb
cve.org
exploitdb
exploitdb
exploitdb
exploitdb
CVSS评分详情
AV:L/AC:H/Au:N/C:C/I:C/A:C
时间信息
利用信息
数据源详情
| 数据源 | 记录ID | 版本 | 提取时间 |
|---|---|---|---|
| CVE | cve_CVE-2004-1235 |
2025-11-11 15:17:30 | 2025-11-11 07:32:22 |
| NVD | nvd_CVE-2004-1235 |
2025-11-11 14:50:56 | 2025-11-11 07:41:08 |
| CNNVD | cnnvd_CNNVD-200504-062 |
2025-11-11 15:08:45 | 2025-11-11 07:48:57 |
| EXPLOITDB | exploitdb_EDB-744 |
2025-11-11 15:05:25 | 2025-11-11 09:03:45 |
| EXPLOITDB | exploitdb_EDB-778 |
2025-11-11 15:05:25 | 2025-11-11 09:04:11 |
| EXPLOITDB | exploitdb_EDB-895 |
2025-11-11 15:05:25 | 2025-11-11 09:05:56 |
版本与语言
安全公告
变更历史
查看详细变更
- references_count: 30 -> 32
- tags_count: 5 -> 6
查看详细变更
- references_count: 28 -> 30
- tags_count: 4 -> 5
查看详细变更
- references_count: 25 -> 28
- tags_count: 0 -> 4
- data_sources: ['cnnvd', 'cve', 'nvd'] -> ['cnnvd', 'cve', 'exploitdb', 'nvd']
查看详细变更
- vulnerability_type: 未提取 -> 授权问题
- cnnvd_id: 未提取 -> CNNVD-200504-062
- data_sources: ['cve', 'nvd'] -> ['cnnvd', 'cve', 'nvd']
查看详细变更
- cvss_score: 未提取 -> 6.2
- cvss_vector: NOT_EXTRACTED -> AV:L/AC:H/Au:N/C:C/I:C/A:C
- cvss_version: NOT_EXTRACTED -> 2.0
- affected_products_count: 0 -> 82
- data_sources: ['cve'] -> ['cve', 'nvd']