You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The fabric association was removed from CASESessionManager in #12766, but:
There are now callsites where we have a PeerId, we extract its NodeId and pass it in and reconstitute a PeerId.
There are still places where CASESessionManager uses bare node ids (e.g. FindExistingSession!) and these can now collide across fabrics, allowing something that should be talking via one fabric to talk via another fabric, possibly to a compeletely different destination. I would be shocked if there were not a security bug in here.
Proposed Solution
Change all CASESessionManager APIs to take const PeerId & instead of a NodeId. Drop the FabricInfo arguments. Do the fabric->GetPeerIdForNode(nodeId) in the consumers that don't already have a PeerId.
Problem
The fabric association was removed from CASESessionManager in #12766, but:
FindExistingSession
!) and these can now collide across fabrics, allowing something that should be talking via one fabric to talk via another fabric, possibly to a compeletely different destination. I would be shocked if there were not a security bug in here.Proposed Solution
Change all CASESessionManager APIs to take
const PeerId &
instead of a NodeId. Drop the FabricInfo arguments. Do thefabric->GetPeerIdForNode(nodeId)
in the consumers that don't already have a PeerId.@msandstedt
The text was updated successfully, but these errors were encountered: