Skip to content

W3: Harden the AArch64 SPMC against partition stack, SVC, deputy and FP faults #68

Description

@aidangarske

Context

Plan item W3 of the AArch64 level 3 plan (tracking #46). Main's SPM and fault hardening (#39) has no AArch64 counterpart yet; the AArch64 manifests stay at isolation_profile 0 until it lands.

Origin

#39 parity for the AArch64 SPMC; the AArch64 level 3 plan

What is needed

  • Guard pages below every S-EL0 partition stack, so an overflow faults and restarts only that partition (twin of mspovfneg)
  • No partition page both writable and executable, checked when the tables are composed (twin of xnneg)
  • An invalid SVC from a partition panics only that partition (twin of svcneg)
  • The confused-deputy refusal on the SPMC's privileged paths (twin of deputyneg)
  • An FP and SIMD trap policy for partitions (twin of fpneg)

Blockers and dependencies

#43 (W1, the keystore band split) lands first, since the guard pages sit beside its bands.

Acceptance criteria

  • The five twins pass on virt gicv2 a35, virt gicv3 a72 and versal-virt with both engines
  • The full AArch64 suite and the ACS stay green
  • Skoll review and review-security clean on the change

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High: blocks a claim, release, or port milestone; next uptodoDeferred work tracked for later

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions