Skip to content

Indirect stack access evaluation#77

Merged
theihor merged 1 commit intomasterfrom
indirect-stack
Sep 4, 2025
Merged

Indirect stack access evaluation#77
theihor merged 1 commit intomasterfrom
indirect-stack

Conversation

@theihor
Copy link
Copy Markdown
Collaborator

@theihor theihor commented Sep 3, 2025

Teach analyzer to evaluate indirect stack access when computing the
array of BpfState objects.

This allows to track stack loads and stores done through a register
other than r10. For example:

*(u64 *)(r1 +0) = r8

If at this point r1 = fp-24, then the value of r8 is written there. So
far bpfvv only could detect this from verifier-provided value
changes. Now it actually checks for the value of r1 at the point of a
store, and can detect a write to fp-24 even if value expression is
absent from the log.

Closes #28

@theihor
Copy link
Copy Markdown
Collaborator Author

theihor commented Sep 3, 2025

One commit on top of #70

Copy link
Copy Markdown
Collaborator

@jordalgo jordalgo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good. Few minor nits.

Teach analyzer to evaluate indirect stack access when computing the
array of BpfState objects.

This allows to track stack loads and stores done through a register
other than r10. For example:

    *(u64 *)(r1 +0) = r8

If at this point r1 = fp-24, then the value of r8 is written there. So
far bpfvv only could detect this from verifier-provided value
changes. Now it actually checks for the value of r1 at the point of a
store, and can detect a write to fp-24 even if value expression is
absent from the log.
@theihor theihor merged commit 59dcbc9 into master Sep 4, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Better stack values dependencies tracking

2 participants