aliyun / plugsched

Live upgrade Linux kernel scheduler subsystem
BSD 3-Clause "New" or "Revised" License
82 stars 23 forks source link

src: exploit vmlinux's call to avoid ROP #148

Closed ampresent closed 2 years ago

ampresent commented 2 years ago

ROP is a hacker technique, which manipulates data on the stack directly. And this new method expolits vmlinux's call instruction like,

schedule(scheduler) schedule(vmlinux) __switch_to(vmlinux) mov prev, rdi mov prev, rdi mov next, rsi mov next, rsi add diff-stack-size, rsp jmp ---> call __switch_to ---> push rbp mov rax,* <--. ... \ pop rbp .--- ret

This solution is simpler than the previous one based on ROP.

Suggested-by: Erwei Deng erwei@linux.alibaba.com Signed-off-by: Yihao Wu wuyihao@linux.alibaba.com

anolis-bot commented 2 years ago

@ampresent , a new test job has been submitted. Please wait in patience. The test job url: https://tone.openanolis.cn/ws/2r1b4c7z/test_result/20750

anolis-bot commented 2 years ago

@ampresent , The CI test is completed, please check result:

Test CaseTest Result
schedule_testx86_64:white_check_mark: SUCCESS
public_var_test:white_check_mark: SUCCESS
var_uniformity_test:white_check_mark: SUCCESS
cpu_throttle_test:x: FAIL
domain_rebuild_test:white_check_mark: SUCCESS
sched_syscall_test:white_check_mark: SUCCESS
mem_pressure_test:white_check_mark: SUCCESS
plugsched-citestaarch64:x: FAIL

Sorry, your test job failed. Please get the details in the link.

ampresent commented 2 years ago

/retest

anolis-bot commented 2 years ago

@ampresent , the test job has been submitted. Please wait in patience. The test job url: https://tone.openanolis.cn/ws/2r1b4c7z/test_result/20779

anolis-bot commented 2 years ago

@ampresent , The CI test is completed, please check result:

Test CaseTest Result
schedule_testx86_64:white_check_mark: SUCCESS
public_var_test:white_check_mark: SUCCESS
var_uniformity_test:white_check_mark: SUCCESS
cpu_throttle_test:white_check_mark: SUCCESS
domain_rebuild_test:white_check_mark: SUCCESS
sched_syscall_test:white_check_mark: SUCCESS
mem_pressure_test:white_check_mark: SUCCESS
plugsched-citestaarch64:x: FAIL

Sorry, your test job failed. Please get the details in the link.

anolis-bot commented 2 years ago

@ampresent , the code has been updated, so a new test job has been submitted. Please wait in patience. The test job url: https://tone.openanolis.cn/ws/2r1b4c7z/test_result/20812

anolis-bot commented 2 years ago

@ampresent , The CI test is completed, please check result:

Test CaseTest Result
plugsched-citestx86_64:x: FAIL
plugsched-citestaarch64:x: FAIL

Sorry, your test job failed. Please get the details in the link.

anolis-bot commented 2 years ago

@ampresent , the code has been updated, so a new test job has been submitted. Please wait in patience. The test job url: https://tone.openanolis.cn/ws/2r1b4c7z/test_result/20814

anolis-bot commented 2 years ago

@ampresent , The CI test is completed, please check result:

Test CaseTest Result
schedule_testx86_64:white_check_mark: SUCCESS
public_var_test:white_check_mark: SUCCESS
var_uniformity_test:white_check_mark: SUCCESS
cpu_throttle_test:white_check_mark: SUCCESS
domain_rebuild_test:white_check_mark: SUCCESS
sched_syscall_test:white_check_mark: SUCCESS
mem_pressure_test:white_check_mark: SUCCESS
schedule_testaarch64:white_check_mark: SUCCESS

Congratulations, your test job passed!