CVE-2023-54308 in Linuxinformación

Resumen

por VulDB • 2026-05-18

Based on the kernel stack trace provided, here is an analysis of the issue:

### 1. **Core Issue: File Open Failure** The stack trace shows a failure during the `vfs_open` call, which is part of the VFS (Virtual File System) layer in the Linux kernel. This indicates that a process attempted to open a file but failed.

### 2. **Key Registers & Error Code** - **`RAX: ffffffffffffdeda`**: This is the critical piece of information. In Linux kernel error handling, negative values in `RAX` represent error codes. - `0xfffffffdeda` is `-202` in decimal. - Error code **-202** corresponds to **`-ENODATA`** ("No data available"). - **`RDI: 00000000ffffff9c`**: This is the file descriptor or pointer being operated on. `0xffffff9c` is `-100` in decimal, which is likely an invalid or error-state file descriptor passed to the syscall. - **`RAX` in syscall context**: The user-space `openat2` or `openat` syscall returned `-ENODATA` to the application.

### 3. **Syscall Context** - **`__x64_sys_openat`**: The system call being made is `openat` (or `openat2`), used to open files relative to a directory file descriptor. - **`do_sys_openat2`**: This suggests the application might be using the newer `openat2` syscall (introduced in Linux 5.6), which allows for more flags (like `RESOLVE_NO_XDEV`, `O_PATH`, etc.).

### 4. **Likely Causes** The error `-ENODATA` (`-202`) during file opening is unusual for standard file operations. It typically occurs in these scenarios:

#### A. **Extended Attributes (xattr) or Security Modules** - If the file has extended attributes or is under a security module (like SELinux, AppArmor, or SMACK), the kernel might return `-ENODATA` if a required attribute is missing or if a security check fails due to missing data. - Example: A security module expects a specific xattr to be present for access control, and its absence triggers `-ENODATA`.

#### B. **Filesystem-Specific Behavior** - Some filesystems (e.g., **FUSE**, **NFS**, **Ceph**, **Btrfs**, **XFS**) may return `-ENODATA` in specific edge cases: - **FUSE**: If the FUSE daemon returns an error or if a requested attribute is not available. - **NFS**: If a file handle is stale or metadata is inconsistent. - **Btrfs/XFS**: If there’s a corruption or a specific feature (like compression or encryption) fails to retrieve data.

#### C. **Application Bug** - The application might be passing an invalid or uninitialized file descriptor (`RDI = -100`) to the syscall, leading to unexpected behavior in the kernel. - If using `openat2`, the application might be passing invalid flags or a path that triggers a kernel bug or filesystem-specific error.

#### D. **Kernel Bug** - While less likely, this could be a kernel bug in the VFS layer or a specific filesystem driver. The stack trace doesn’t show a crash (oops/panic), just a failed syscall.

### 5. **Debugging Steps** To further diagnose the issue:

1. **Check dmesg for More Context**: ```bash dmesg | tail -n 50 ``` Look for additional messages around the timestamp `697561.533012` that might indicate which filesystem or driver was involved.

2. **Identify the Application**: - Use `strace` to trace the failing application: ```bash strace -f -e trace=openat,openat2 -p <PID> ``` - Check what file path and flags are being passed.

3. **Check Filesystem Type**: - Determine the filesystem type of the file being opened: ```bash df -T <path_to_file> ``` - If it’s a network filesystem (NFS, Ceph) or FUSE, check the server/daemon logs.

4. **Check Security Modules**: - If SELinux/AppArmor is enabled, check audit logs: ```bash ausearch -m avc -ts recent ```

5. **Kernel Version**: - Check the kernel version: ```

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsable

Linux

Reservar

2025-12-30

Divulgación

2025-12-30

Moderación

aceptado

Artículo

VDB-338805

EPSS

0.00154

KEV

no

Actividades

muy bajo

Fuentes

Do you need the next level of professionalism?

Upgrade your account now!