1
0

test-luksmeta 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash -x
  2. trap 'exit' ERR
  3. export tmp=`mktemp /tmp/luksmeta.XXXXXXXXXX`
  4. export tmpdata=`mktemp /tmp/luksmeta.XXXXXXXXXX`
  5. function onexit() {
  6. rm -f $tmp
  7. rm -f "${tmpdata}"
  8. }
  9. trap 'onexit' EXIT
  10. truncate -s 4M $tmp
  11. echo -n foo | cryptsetup luksFormat --type luks1 $tmp -
  12. ! ./luksmeta test -d $tmp
  13. ./luksmeta init -f -d $tmp
  14. ./luksmeta test -d $tmp
  15. ./luksmeta init -f -d $tmp
  16. for slot in `seq 0 7`; do
  17. test "`./luksmeta show -s $slot -d $tmp`" == ""
  18. echo hi | ./luksmeta save -s $slot -u 23149359-1b61-4803-b818-774ab730fbec -d $tmp
  19. test "`./luksmeta show -s $slot -d $tmp`" == "23149359-1b61-4803-b818-774ab730fbec"
  20. test "`./luksmeta load -s $slot -d $tmp`" == "hi"
  21. test "`./luksmeta load -s $slot -u 23149359-1b61-4803-b818-774ab730fbec -d $tmp`" == "hi"
  22. ! ./luksmeta load -s $slot -u 23149359-1b61-4803-b818-774ab730fbed -d $tmp
  23. ! ./luksmeta wipe -f -s $slot -u 23149359-1b61-4803-b818-774ab730fbed -d $tmp
  24. ./luksmeta wipe -f -s $slot -u 23149359-1b61-4803-b818-774ab730fbec -d $tmp
  25. ! ./luksmeta load -s $slot -d $tmp
  26. echo hi | ./luksmeta save -s $slot -u 23149359-1b61-4803-b818-774ab730fbec -d $tmp
  27. ./luksmeta wipe -f -s $slot -d $tmp
  28. ! ./luksmeta load -s $slot -d $tmp
  29. done
  30. # Test nuking
  31. ./luksmeta test -d $tmp
  32. ./luksmeta init -f -d $tmp
  33. ./luksmeta nuke -f -d $tmp
  34. ! ./luksmeta test -d $tmp
  35. # Test implicit nuking
  36. ./luksmeta init -f -d $tmp
  37. echo hi | ./luksmeta save -s 0 -u 23149359-1b61-4803-b818-774ab730fbec -d $tmp
  38. test "`./luksmeta load -s 0 -d $tmp`" == "hi"
  39. ./luksmeta init -n -f -d $tmp
  40. ! ./luksmeta load -s 0 -d $tmp
  41. # CVE-2025-11568 - test attempt to store extremely large amount of data in a slot.
  42. ./luksmeta init -f -d "${tmp}"
  43. dd bs=1024k count=1 </dev/zero >"${tmpdata}"
  44. ! ./luksmeta save -s 1 -u 23149359-1b61-4803-b818-774ab730fbec -d "${tmp}" < "${tmpdata}"
  45. # Additional test for CVE-2025-11568 boundary conditions.
  46. # Verify overflow protection with multiple existing slots at various offsets.
  47. ./luksmeta init -f -d "${tmp}"
  48. echo "a" | ./luksmeta save -s 0 -u 11111111-1111-1111-1111-111111111111 -d "${tmp}"
  49. echo "b" | ./luksmeta save -s 1 -u 22222222-2222-2222-2222-222222222222 -d "${tmp}"
  50. dd bs=1024 count=900 </dev/zero >"${tmpdata}"
  51. ! ./luksmeta save -s 2 -u 33333333-3333-3333-3333-333333333333 -d "${tmp}" < "${tmpdata}"