- Reported
 
      - 
        
      
 
      - Issued
 
      - 
        
        
        
        
      
 
      - Package
 
      - 
        
        
        signal-simple
          (crates.io)
        
        
      
 
      - Type
 
      - 
        
        Vulnerability
        
      
 
      
      - Categories
 
      - 
        
      
 
      
      
      
      - Aliases
 
      - 
        
      
 
      
      
      - References
 
      - 
        
      
 
      
      
      
      - CVSS Score
 
      - 8.1 
        HIGH
      
 
      - CVSS Details
 
      - 
        
          
            - Attack Vector
 
            - Network
 
          
            - Attack Complexity
 
            - High
 
          
            - Privileges Required
 
            - None
 
          
            - User Interaction
 
            - None
 
          
            - Scope
 
            - Unchanged
 
          
            - Confidentiality Impact
 
            - High
 
          
            - Integrity Impact
 
            - High
 
          
            - Availability Impact
 
            - High
 
          
        
       
      - CVSS Vector
 
      
          - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
 
        
      
      - Patched
 
      - 
        
        no patched versions
        
      
 
      
      
      
    
    
    
    Description
    Affected versions of this crate unconditionally implement Send/Sync for SyncChannel<T>.
SyncChannel<T> doesn't provide access to &T but merely serves as a channel that consumes and returns owned T.
Users can create UB in safe Rust by sending T: !Send to other threads with SyncChannel::send/recv APIs. Using T = Arc<Cell<_> allows to create data races (which can lead to memory corruption), and using T = MutexGuard<T> allows to unlock a mutex from a thread that didn't lock the mutex.
    Advisory available under CC0-1.0
    license.