5 comments

  • Nextgrid3 hours ago
    Doesn&#x27;t this already require to be &quot;on the other side of the airtight hatchway&quot;, or am I missing something?<p>The Marshal.load docs explicitly have a warning that you should not pass it untrusted data: <a href="https:&#x2F;&#x2F;docs.ruby-lang.org&#x2F;en&#x2F;master&#x2F;Marshal.html#module-marshal-security-considerations" rel="nofollow">https:&#x2F;&#x2F;docs.ruby-lang.org&#x2F;en&#x2F;master&#x2F;Marshal.html#module-mar...</a>
    • Retr0id3 hours ago
      Yes, but that doesn&#x27;t mean defense-in-depth isn&#x27;t worth doing. The article discusses how known gadgets were removed in the past.
  • sebiw3 hours ago
    Which brings us to the old saying: Do not deserialize untrusted data.<p>In the context of Rubygems and their specs this obviously is harder to manage but dependencies such as Rubygems are and will always be part of your app&#x27;s Trusted Computing Base.
    • sscaryterry2 hours ago
      &gt; dependencies such as Rubygems are and will always be part of your app&#x27;s Trusted Computing Base<p>This mindset is changing, in the npm ecosystem, managing and updating dependencies have become somewhat of a gamble. It is no longer <i>if</i>, its when you are compromised.
      • _joel2 hours ago
        Checksumming the dependencies in the Gemfile may help. <a href="https:&#x2F;&#x2F;blog.rubygems.org&#x2F;2024&#x2F;12&#x2F;19&#x2F;bundler-v2-6.html" rel="nofollow">https:&#x2F;&#x2F;blog.rubygems.org&#x2F;2024&#x2F;12&#x2F;19&#x2F;bundler-v2-6.html</a>
      • jbverschoor1 hour ago
        Gems&#x2F;packages should explicitly declare what kind of features they need&#x2F;want (file, net, deserialization, execute)<p>And when the sig. changes, you should get a warning<p>Very similar to the iOS entitlements
    • wyager2 hours ago
      &gt; Do not deserialize untrusted data.<p>I think the better lesson is &quot;use safe codecs&quot;
    • ares6231 hour ago
      LLMs: hold my beer
  • mono4422 hours ago
    Quoting the ruby documentation:<p>&gt; Marshal.load is not suitable as a general purpose serialization format and you should never unmarshal user supplied input or other untrusted data.
  • shevy-java1 hour ago
    That&#x27;s actually crafty. I wonder what the rationale was for the C function time_mload(). Anyone able to find out? How can we see which person created it first?
  • saadyousfi2 hours ago
    [dead]