i think the simplest solution is Actor Components, add the component when a buff/debuff is applied and the component handles the logic.
you may also want some sort of manager component to handle the creation/tracking and handle duplicates/ stacking etc