-
Notifications
You must be signed in to change notification settings - Fork 14.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix SIGILL on staged meterpreter on RaspberryPi4 #19875
base: master
Are you sure you want to change the base?
Conversation
|
Yeah; I'm not trilled with this, but it does work. This bug has only been seen on RPi4B, and to the best of my knowledge, the |
mov x2, x0 | ||
mov x8, #0x51 | ||
svc 0 | ||
mov x0, x2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add comment linking the issue
This is not required on Raspi5:
|
This PR fixes: this issue
ISSUE
Inside the
read_loop
theread
syscall get the data from the socket file descriptor and write it to the new memory.When we are executing the payload with
./metsrv
we get aSIGILL
on the start of MMAP, if we run the program using strace, the program works flowlessly.The issue was identified by @h00die-gr3y on this pr
FIX
The fix is simply adding a
sync()
syscall after each read() to enforce cache flushing (?). I still have no idea why it works but it does.