Skip to content

Cross-resource command impersonation via raw clientID event #73

Description

@Jaro-c

I traced src/runtime/server/controllers/command-export.controller.ts:242-244 and remote-command-execution.controller.ts:63-72 and found remote command execution gets delegated through a local engine event named opencore:command:execute:{resourceName} carrying a bare numeric clientID. Any other resource loaded on the same server can TriggerEvent that name directly with an arbitrary clientID and execute a command "as" any currently-connected player. The target handler's own @Guard/@RequiresState still re-checks permissions, so I don't think it's a full authz bypass — but CORE's own validateSecurity bookkeeping/audit trail gets bypassed, and impersonating the acting player in logs looks possible.

I'd suggest including a signed/opaque capability token in the event payload instead of a raw clientID, so only CORE itself can legitimately trigger command execution on behalf of a player.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions