trailofbits / trailofbits/mquire

AlmaLinux 9.6 (kernels 5.14.0): Failed to locate the init task struct

Open
#138 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
185
Forks
8
Avg merge
7d 11h
Merged PRs (30d)
3

Description

Yoyo! I tested the current main branch, and unfortunately, the problem still occurs. My kernel version is 5.14.0-284.25.1.el9_2.x86_64 or 5.14.0-570.35.1.el9_6.x86_64. The same issue. Mem dump created with avml.

[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x00000000f3d312ab) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x00000000f3d8f68b) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x00000000f420d05f) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x00000000f75b9d5e) => raddr(0xff93d31762c628ff)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x00000000fae7aefe) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x00000000fb17601e) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x0000000116e9e812) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x0000000125d4407d) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x00000001382e5dbd) => raddr(0xff93d31762c628ff)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x000000016f95c5f6) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@292: BTF candidate failed init_task resolution: Error { kind: OperatingSystemInitializationFailed, message: "Failed to locate the init task struct" }
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x00000001518d2c48)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x000000015b51628d)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x00000001539dddd2)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x000000015595e0be)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x0000000155da9c7f)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x000000015648e05f)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x0000000156c5e05f)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x000000015f7520be)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x000000016882b4ee)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x000000016882baee)
...

[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x00000000fae7aefe) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x00000000fb17601e) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x0000000116e9e812) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x0000000125d4407d) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x00000001382e5dbd) => raddr(0xff93d31762c628ff)
[DEBUG] src/operating_system/linux/operating_system.rs@549: Trying swapper candidate: paddr(0x000000016f95c5f6) => raddr(0x0000000000000000)
[DEBUG] src/operating_system/linux/operating_system.rs@292: BTF candidate failed init_task resolution: Error { kind: OperatingSystemInitializationFailed, message: "Failed to locate the init task struct" }
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x00000001782494ee)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x00000001782498ee)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x0000000170676e16)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x0000000170676ed6)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x0000000171c08017)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x0000000171c7b3c5)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x00000001725e40be)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x000000017293611d)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x000000017416754d)
[DEBUG] src/operating_system/linux/btf.rs@215: Failed to parse BTF data at offset paddr(0x0000000177d8a077)
Error: Custom { kind: Other, error: "Failed to create operating system: Error { kind: OperatingSystemInitializationFailed, message: "Failed to locate valid BTF debug symbols with a resolvable init task" }" }

Any support will be very helpful. Thank you!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/operating_system/linux/operating_system.rs around lines 292 and 549, then read src/operating_system/linux/btf.rs around line 215. Reproduce the failure with an AlmaLinux 9.6 memory dump and trace BTF parsing and init_task resolution. Done means the reported kernels can create the operating system successfully with valid BTF symbols.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, rust
Domain
operating-systems, reverse-engineering
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.