Skip to content
  • Charlie Jacobsen's avatar
    Fixes security bug: LCD could modify host's struct. · 18fc3b79
    Charlie Jacobsen authored and Vikram Narayanan's avatar Vikram Narayanan committed
    This is a trivial commit, but I want to get this fixed before
    it bites us in the future.
    
    The problem: the host kernel uses a struct to represent an
    installed kernel module. But this struct is literally embedded
    in the module's program bits. We're mapping the entire module
    inside the LCD. Thus, the LCD can do whatever it wants to the
    struct, and this could affect the host.
    
    Yes, all of the other parts of the module are technically exposed
    to the host. But it's important we isolate this struct because this
    is something the host will actually touch.
    
    The solution: I duplicate the page that contains the struct, so
    that the LCD has a separate copy of the struct.
    
    Open issues: we still need to come up with a solution for an LCD
    to pass its struct module as an argument, via rpc. I'm going to
    hack it for now with PMFS.
    18fc3b79