109 Star 72 Fork 297

src-openEuler/kernel

 / 详情

CVE-2022-48733

已完成
CVE和安全问题 拥有者
创建于  
2024-06-20 21:32

一、漏洞信息
漏洞编号:CVE-2022-48733
漏洞归属组件:kernel
漏洞归属的版本:4.19.140,4.19.194,4.19.90,5.10.0,6.1.0,6.1.14,6.1.19,6.1.5,6.1.6,6.1.8,6.4.0,6.6.0
CVSS V2.0分值:
BaseScore:0.0 None
Vector:CVSS:2.0/
漏洞简述:
In the Linux kernel, the following vulnerability has been resolved:btrfs: fix use-after-free after failure to create a snapshotAt ioctl.c:create_snapshot(), we allocate a pending snapshot structure andthen attach it to the transaction s list of pending snapshots. After thatwe call btrfs_commit_transaction(), and if that returns an error we jumpto fail label, where we kfree() the pending snapshot structure. This canresult in a later use-after-free of the pending snapshot:1) We allocated the pending snapshot and added it to the transaction s list of pending snapshots;2) We call btrfs_commit_transaction(), and it fails either at the first call to btrfs_run_delayed_refs() or btrfs_start_dirty_block_groups(). In both cases, we don t abort the transaction and we release our transaction handle. We jump to the fail label and free the pending snapshot structure. We return with the pending snapshot still in the transaction s list;3) Another task commits the transaction. This time there s no error at all, and then during the transaction commit it accesses a pointer to the pending snapshot structure that the snapshot creation task has already freed, resulting in a user-after-free.This issue could actually be detected by smatch, which produced thefollowing warning: fs/btrfs/ioctl.c:843 create_snapshot() warn: &pending_snapshot->list not removed from listSo fix this by not having the snapshot creation ioctl directly add thepending snapshot to the transaction s list. Instead add the pendingsnapshot to the transaction handle, and then at btrfs_commit_transaction()we add the snapshot to the list only when we can guarantee that any errorreturned after that point will result in a transaction abort, in whichcase the ioctl code can safely free the pending snapshot and no one canaccess it anymore.
漏洞公开时间:2024-06-20 20:15:11
漏洞创建时间:2024-06-20 21:32:30
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2022-48733

更多参考(点击展开)
参考来源 参考链接 来源链接
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/28b21c558a3753171097193b6f6602a94169093a
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/9372fa1d73da5f1673921e365d0cd2c27ec7adc2
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/a7b717fa15165d3d9245614680bebc48a52ac05d
suse_bugzilla http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2022-48733 https://bugzilla.suse.com/show_bug.cgi?id=1226718
suse_bugzilla https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2022/CVE-2022-48733.mbox https://bugzilla.suse.com/show_bug.cgi?id=1226718
suse_bugzilla https://git.kernel.org/stable/c/a7b717fa15165d3d9245614680bebc48a52ac05d https://bugzilla.suse.com/show_bug.cgi?id=1226718
suse_bugzilla https://git.kernel.org/stable/c/9372fa1d73da5f1673921e365d0cd2c27ec7adc2 https://bugzilla.suse.com/show_bug.cgi?id=1226718
suse_bugzilla https://git.kernel.org/stable/c/28b21c558a3753171097193b6f6602a94169093a https://bugzilla.suse.com/show_bug.cgi?id=1226718
suse_bugzilla https://www.cve.org/CVERecord?id=CVE-2022-48733 https://bugzilla.suse.com/show_bug.cgi?id=1226718
suse_bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=2293326 https://bugzilla.suse.com/show_bug.cgi?id=1226718
redhat_bugzilla https://lore.kernel.org/linux-cve-announce/2024062000-CVE-2022-48733-4217@gregkh/T https://bugzilla.redhat.com/show_bug.cgi?id=2293326
ubuntu https://www.cve.org/CVERecord?id=CVE-2022-48733 https://ubuntu.com/security/CVE-2022-48733
ubuntu https://git.kernel.org/linus/28b21c558a3753171097193b6f6602a94169093a (5.17-rc3) https://ubuntu.com/security/CVE-2022-48733
ubuntu https://git.kernel.org/stable/c/a7b717fa15165d3d9245614680bebc48a52ac05d https://ubuntu.com/security/CVE-2022-48733
ubuntu https://git.kernel.org/stable/c/9372fa1d73da5f1673921e365d0cd2c27ec7adc2 https://ubuntu.com/security/CVE-2022-48733
ubuntu https://git.kernel.org/stable/c/28b21c558a3753171097193b6f6602a94169093a https://ubuntu.com/security/CVE-2022-48733
ubuntu https://nvd.nist.gov/vuln/detail/CVE-2022-48733 https://ubuntu.com/security/CVE-2022-48733
ubuntu https://launchpad.net/bugs/cve/CVE-2022-48733 https://ubuntu.com/security/CVE-2022-48733
ubuntu https://security-tracker.debian.org/tracker/CVE-2022-48733 https://ubuntu.com/security/CVE-2022-48733

漏洞分析指导链接:
https://gitee.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
漏洞数据来源:
openBrain开源漏洞感知系统
漏洞补丁信息:

详情(点击展开)
影响的包 修复版本 修复补丁 问题引入补丁 来源
linux https://git.kernel.org/linus/28b21c558a3753171097193b6f6602a94169093a https://git.kernel.org/linus/1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ubuntu

二、漏洞分析结构反馈
影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:btrfs: fix use-after-free after failure to create a snapshotAt ioctl.c:create_snapshot(), we allocate a pending snapshot structure andthen attach it to the transaction's list of pending snapshots. After thatwe call btrfs_commit_transaction(), and if that returns an error we jumpto 'fail' label, where we kfree() the pending snapshot structure. This canresult in a later use-after-free of the pending snapshot:1) We allocated the pending snapshot and added it to the transaction's list of pending snapshots;2) We call btrfs_commit_transaction(), and it fails either at the first call to btrfs_run_delayed_refs() or btrfs_start_dirty_block_groups(). In both cases, we don't abort the transaction and we release our transaction handle. We jump to the 'fail' label and free the pending snapshot structure. We return with the pending snapshot still in the transaction's list;3) Another task commits the transaction. This time there's no error at all, and then during the transaction commit it accesses a pointer to the pending snapshot structure that the snapshot creation task has already freed, resulting in a user-after-free.This issue could actually be detected by smatch, which produced thefollowing warning: fs/btrfs/ioctl.c:843 create_snapshot() warn: '&pending_snapshot->list' not removed from listSo fix this by not having the snapshot creation ioctl directly add thepending snapshot to the transaction's list. Instead add the pendingsnapshot to the transaction handle, and then at btrfs_commit_transaction()we add the snapshot to the list only when we can guarantee that any errorreturned after that point will result in a transaction abort, in whichcase the ioctl code can safely free the pending snapshot and no one canaccess it anymore.The Linux kernel CVE team has assigned CVE-2022-48733 to this issue.
openEuler评分:
6.7
Vector:CVSS:2.0/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP4(4.19.90):受影响
2.openEuler-22.03-LTS-SP1(5.10.0):受影响
3.openEuler-22.03-LTS-SP3(5.10.0):受影响
4.openEuler-22.03-LTS-SP4(5.10.0):不受影响
5.master(6.1.0):不受影响
6.openEuler-24.03-LTS(6.6.0):不受影响
7.openEuler-24.03-LTS-Next(6.6.0):不受影响

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP4(4.19.90):否
2.openEuler-22.03-LTS-SP1(5.10.0):否
3.openEuler-22.03-LTS-SP3(5.10.0):否
4.master(6.1.0):否
5.openEuler-24.03-LTS(6.6.0):否
6.openEuler-24.03-LTS-Next(6.6.0):否
7.openEuler-22.03-LTS-SP4(5.10.0):否

三、漏洞修复
安全公告链接:https://www.openeuler.org/zh/security/safety-bulletin/detail/?id=openEuler-SA-2024-1839

评论 (26)

openeuler-ci-bot 创建了CVE和安全问题 11个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
11个月前
展开全部操作日志

Hi openeuler-ci-bot, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Kernel, and any of the maintainers.

openeuler-ci-bot 添加了
 
sig/Kernel
标签
11个月前
参考网址 关联pr 状态 补丁链接
https://nvd.nist.gov/vuln/detail/CVE-2022-48733NoneNonehttps://git.kernel.org/stable/c/28b21c558a3753171097193b6f6602a94169093a
https://git.kernel.org/stable/c/a7b717fa15165d3d9245614680bebc48a52ac05d
https://git.kernel.org/stable/c/9372fa1d73da5f1673921e365d0cd2c27ec7adc2
https://ubuntu.com/security/CVE-2022-48733NoneNonehttps://discourse.ubuntu.com/c/ubuntu-pro
https://www.opencve.io/cve/CVE-2022-48733NoneNonehttps://git.kernel.org/stable/c/28b21c558a3753171097193b6f6602a94169093a
https://git.kernel.org/stable/c/a7b717fa15165d3d9245614680bebc48a52ac05d
https://git.kernel.org/stable/c/9372fa1d73da5f1673921e365d0cd2c27ec7adc2
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2022-48733

说明:补丁链接仅供初步排查参考,实际可用性请人工再次确认,补丁下载验证可使用CVE补丁工具
若补丁不准确,烦请在此issue下评论 '/report-patch 参考网址 补丁链接1,补丁链接2' 反馈正确信息,便于我们不断优化工具,不胜感激。
如 /report-patch https://security-tracker.debian.org/tracker/CVE-2021-3997 https://github.com/systemd/systemd/commit/5b1cf7a9be37e20133c0208005274ce4a5b5c6a1

openeuler-ci-bot 修改了描述 11个月前
openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前

CVE-2022-48733

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

btrfs: fix use-after-free after failure to create a snapshot

At ioctl.c:create_snapshot(), we allocate a pending snapshot structure and
then attach it to the transaction's list of pending snapshots. After that
we call btrfs_commit_transaction(), and if that returns an error we jump
to 'fail' label, where we kfree() the pending snapshot structure. This can
result in a later use-after-free of the pending snapshot:

  1. We allocated the pending snapshot and added it to the transaction's
    list of pending snapshots;

  2. We call btrfs_commit_transaction(), and it fails either at the first
    call to btrfs_run_delayed_refs() or btrfs_start_dirty_block_groups().
    In both cases, we don't abort the transaction and we release our
    transaction handle. We jump to the 'fail' label and free the pending
    snapshot structure. We return with the pending snapshot still in the
    transaction's list;

  3. Another task commits the transaction. This time there's no error at
    all, and then during the transaction commit it accesses a pointer
    to the pending snapshot structure that the snapshot creation task
    has already freed, resulting in a user-after-free.

This issue could actually be detected by smatch, which produced the
following warning:

fs/btrfs/ioctl.c:843 create_snapshot() warn: '&pending_snapshot->list' not removed from list

So fix this by not having the snapshot creation ioctl directly add the
pending snapshot to the transaction's list. Instead add the pending
snapshot to the transaction handle, and then at btrfs_commit_transaction()
we add the snapshot to the list only when we can guarantee that any error
returned after that point will result in a transaction abort, in which
case the ioctl code can safely free the pending snapshot and no one can
access it anymore.

The Linux kernel CVE team has assigned CVE-2022-48733 to this issue.

openEuler评分:(评分和向量)
0
CVSS: 3.0/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:N

受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP1:受影响
2.openEuler-20.03-LTS-SP4:受影响
3.openEuler-22.03-LTS:不受影响
4.openEuler-22.03-LTS-SP1:受影响
5.openEuler-22.03-LTS-SP2:不受影响
6.openEuler-22.03-LTS-SP3:受影响
7.openEuler-22.03-LTS-SP4:不受影响
8.master(6.1.0):不受影响
9.openEuler-22.03-LTS-Next:不受影响
10.openEuler-24.03-LTS:不受影响
11.openEuler-24.03-LTS-Next:不受影响

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP1(4.19.90):否
2.openEuler-20.03-LTS-SP4:否
3.openEuler-22.03-LTS:否
4.openEuler-22.03-LTS-SP1:否
5.openEuler-22.03-LTS-SP2:否
6.openEuler-22.03-LTS-SP3:否
7.master(6.1.0):否
8.openEuler-22.03-LTS-Next:否
9.openEuler-24.03-LTS:否
10.openEuler-24.03-LTS-Next:否
11.openEuler-22.03-LTS-SP4:否

openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 负责人设置为sanglipeng 10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前

CVE-2022-48733

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

btrfs: fix use-after-free after failure to create a snapshot

At ioctl.c:create_snapshot(), we allocate a pending snapshot structure and
then attach it to the transaction's list of pending snapshots. After that
we call btrfs_commit_transaction(), and if that returns an error we jump
to 'fail' label, where we kfree() the pending snapshot structure. This can
result in a later use-after-free of the pending snapshot:

  1. We allocated the pending snapshot and added it to the transaction's
    list of pending snapshots;

  2. We call btrfs_commit_transaction(), and it fails either at the first
    call to btrfs_run_delayed_refs() or btrfs_start_dirty_block_groups().
    In both cases, we don't abort the transaction and we release our
    transaction handle. We jump to the 'fail' label and free the pending
    snapshot structure. We return with the pending snapshot still in the
    transaction's list;

  3. Another task commits the transaction. This time there's no error at
    all, and then during the transaction commit it accesses a pointer
    to the pending snapshot structure that the snapshot creation task
    has already freed, resulting in a user-after-free.

This issue could actually be detected by smatch, which produced the
following warning:

fs/btrfs/ioctl.c:843 create_snapshot() warn: '&pending_snapshot->list' not removed from list

So fix this by not having the snapshot creation ioctl directly add the
pending snapshot to the transaction's list. Instead add the pending
snapshot to the transaction handle, and then at btrfs_commit_transaction()
we add the snapshot to the list only when we can guarantee that any error
returned after that point will result in a transaction abort, in which
case the ioctl code can safely free the pending snapshot and no one can
access it anymore.

The Linux kernel CVE team has assigned CVE-2022-48733 to this issue.

openEuler评分:(评分和向量)
6.7
CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP4:受影响
2.openEuler-22.03-LTS-SP1:受影响
3.openEuler-22.03-LTS-SP3:受影响
4.openEuler-22.03-LTS-SP4:不受影响
5.master(6.1.0):不受影响
6.openEuler-24.03-LTS:不受影响
7.openEuler-24.03-LTS-Next:不受影响

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP4:否
2.openEuler-22.03-LTS-SP1:否
3.openEuler-22.03-LTS-SP3:否
4.master(6.1.0):否
5.openEuler-24.03-LTS:否
6.openEuler-24.03-LTS-Next:否
7.openEuler-22.03-LTS-SP4:否

openeuler-ci-bot 修改了描述 10个月前

CVE-2022-48733

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

btrfs: fix use-after-free after failure to create a snapshot

At ioctl.c:create_snapshot(), we allocate a pending snapshot structure and
then attach it to the transaction's list of pending snapshots. After that
we call btrfs_commit_transaction(), and if that returns an error we jump
to 'fail' label, where we kfree() the pending snapshot structure. This can
result in a later use-after-free of the pending snapshot:

  1. We allocated the pending snapshot and added it to the transaction's
    list of pending snapshots;

  2. We call btrfs_commit_transaction(), and it fails either at the first
    call to btrfs_run_delayed_refs() or btrfs_start_dirty_block_groups().
    In both cases, we don't abort the transaction and we release our
    transaction handle. We jump to the 'fail' label and free the pending
    snapshot structure. We return with the pending snapshot still in the
    transaction's list;

  3. Another task commits the transaction. This time there's no error at
    all, and then during the transaction commit it accesses a pointer
    to the pending snapshot structure that the snapshot creation task
    has already freed, resulting in a user-after-free.

This issue could actually be detected by smatch, which produced the
following warning:

fs/btrfs/ioctl.c:843 create_snapshot() warn: '&pending_snapshot->list' not removed from list

So fix this by not having the snapshot creation ioctl directly add the
pending snapshot to the transaction's list. Instead add the pending
snapshot to the transaction handle, and then at btrfs_commit_transaction()
we add the snapshot to the list only when we can guarantee that any error
returned after that point will result in a transaction abort, in which
case the ioctl code can safely free the pending snapshot and no one can
access it anymore.

The Linux kernel CVE team has assigned CVE-2022-48733 to this issue.

openEuler评分:(评分和向量)
6.7
CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP4:受影响
2.openEuler-22.03-LTS-SP1:受影响
3.openEuler-22.03-LTS-SP3:受影响
4.openEuler-22.03-LTS-SP4:不受影响
5.master(6.1.0):不受影响
6.openEuler-24.03-LTS:不受影响
7.openEuler-24.03-LTS-Next:不受影响

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP4:否
2.openEuler-22.03-LTS-SP1:否
3.openEuler-22.03-LTS-SP3:否
4.master(6.1.0):否
5.openEuler-24.03-LTS:否
6.openEuler-24.03-LTS-Next:否
7.openEuler-22.03-LTS-SP4:否

openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 修改了描述 10个月前
郭梦琪 任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
ci-robot 通过合并 Pull Request !9772: btrfs: fix use-after-free after failure to create a snapshot任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前
ci-robot 通过合并 Pull Request !9773: btrfs: fix use-after-free after failure to create a snapshot任务状态待办的 修改为已完成 10个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
10个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
10个月前
openeuler-ci-bot 添加了
 
CVE/FIXED
标签
10个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
10个月前

CVE-2022-48733

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

btrfs: fix use-after-free after failure to create a snapshot

At ioctl.c:create_snapshot(), we allocate a pending snapshot structure and
then attach it to the transaction's list of pending snapshots. After that
we call btrfs_commit_transaction(), and if that returns an error we jump
to 'fail' label, where we kfree() the pending snapshot structure. This can
result in a later use-after-free of the pending snapshot:

  1. We allocated the pending snapshot and added it to the transaction's
    list of pending snapshots;

  2. We call btrfs_commit_transaction(), and it fails either at the first
    call to btrfs_run_delayed_refs() or btrfs_start_dirty_block_groups().
    In both cases, we don't abort the transaction and we release our
    transaction handle. We jump to the 'fail' label and free the pending
    snapshot structure. We return with the pending snapshot still in the
    transaction's list;

  3. Another task commits the transaction. This time there's no error at
    all, and then during the transaction commit it accesses a pointer
    to the pending snapshot structure that the snapshot creation task
    has already freed, resulting in a user-after-free.

This issue could actually be detected by smatch, which produced the
following warning:

fs/btrfs/ioctl.c:843 create_snapshot() warn: '&pending_snapshot->list' not removed from list

So fix this by not having the snapshot creation ioctl directly add the
pending snapshot to the transaction's list. Instead add the pending
snapshot to the transaction handle, and then at btrfs_commit_transaction()
we add the snapshot to the list only when we can guarantee that any error
returned after that point will result in a transaction abort, in which
case the ioctl code can safely free the pending snapshot and no one can
access it anymore.

The Linux kernel CVE team has assigned CVE-2022-48733 to this issue.

openEuler评分:(评分和向量)
6.7
CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP4:受影响
2.openEuler-22.03-LTS-SP1:受影响
3.openEuler-22.03-LTS-SP3:受影响
4.openEuler-22.03-LTS-SP4:不受影响
5.master(6.1.0):不受影响
6.openEuler-24.03-LTS:不受影响
7.openEuler-24.03-LTS-Next:不受影响

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP4:否
2.openEuler-22.03-LTS-SP1:否
3.openEuler-22.03-LTS-SP3:否
4.master(6.1.0):否
5.openEuler-24.03-LTS:否
6.openEuler-24.03-LTS-Next:否
7.openEuler-22.03-LTS-SP4:否

CVE-2022-48733

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

btrfs: fix use-after-free after failure to create a snapshot

At ioctl.c:create_snapshot(), we allocate a pending snapshot structure and
then attach it to the transaction's list of pending snapshots. After that
we call btrfs_commit_transaction(), and if that returns an error we jump
to 'fail' label, where we kfree() the pending snapshot structure. This can
result in a later use-after-free of the pending snapshot:

  1. We allocated the pending snapshot and added it to the transaction's
    list of pending snapshots;

  2. We call btrfs_commit_transaction(), and it fails either at the first
    call to btrfs_run_delayed_refs() or btrfs_start_dirty_block_groups().
    In both cases, we don't abort the transaction and we release our
    transaction handle. We jump to the 'fail' label and free the pending
    snapshot structure. We return with the pending snapshot still in the
    transaction's list;

  3. Another task commits the transaction. This time there's no error at
    all, and then during the transaction commit it accesses a pointer
    to the pending snapshot structure that the snapshot creation task
    has already freed, resulting in a user-after-free.

This issue could actually be detected by smatch, which produced the
following warning:

fs/btrfs/ioctl.c:843 create_snapshot() warn: '&pending_snapshot->list' not removed from list

So fix this by not having the snapshot creation ioctl directly add the
pending snapshot to the transaction's list. Instead add the pending
snapshot to the transaction handle, and then at btrfs_commit_transaction()
we add the snapshot to the list only when we can guarantee that any error
returned after that point will result in a transaction abort, in which
case the ioctl code can safely free the pending snapshot and no one can
access it anymore.

The Linux kernel CVE team has assigned CVE-2022-48733 to this issue.

openEuler评分:(评分和向量)
6.7
CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H

受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP4:受影响
2.openEuler-22.03-LTS-SP1:受影响
3.openEuler-22.03-LTS-SP3:受影响
4.openEuler-22.03-LTS-SP4:不受影响
5.master(6.1.0):不受影响
6.openEuler-24.03-LTS:不受影响
7.openEuler-24.03-LTS-Next:不受影响

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP4:否
2.openEuler-22.03-LTS-SP1:否
3.openEuler-22.03-LTS-SP3:否
4.master(6.1.0):否
5.openEuler-24.03-LTS:否
6.openEuler-24.03-LTS-Next:否
7.openEuler-22.03-LTS-SP4:否

openeuler-ci-bot 修改了描述 10个月前
openeuler-ci-bot 计划开始日期设置为2024-07-05 8个月前
openeuler-ci-bot 计划截止日期设置为2024-08-04 8个月前
openeuler-ci-bot 优先级设置为主要 8个月前

登录 后才可以发表评论

状态
负责人
项目
预计工期 (小时)
开始日期   -   截止日期
-
置顶选项
优先级
分支
参与者(2)
5329419 openeuler ci bot 1632792936 hulk-robot-zhixiuzhou
1
https://gitee.com/src-openeuler/kernel.git
git@gitee.com:src-openeuler/kernel.git
src-openeuler
kernel
kernel

搜索帮助