Hasty Briefsbeta

双语

Infidel Goes Wild

2 days ago
  • 发现了一个由于ZIL编译器错误导致的Infidel(Infocom游戏)中的内存损坏野指针漏洞。
  • 该漏洞影响管理无尽沙漠中物体的例程,这些例程会在表格间来回移动物品。
  • 默认参数'TBL'被错误地设置为全局变量的索引(30)而不是其地址,导致写入错误的内存位置。
  • 覆盖未使用的头字节,随后损坏缩写表,导致文本故障(例如,'the'变成'You')。
  • 该漏洞极难发现;只有当玩家在沙漠中掉落超过8个物品时才会触发(由于沙埋机制)。
  • 数十年未被发现;1984年修订版中未修复。
  • 修复方法:移除默认值并显式初始化变量。
  • 类似漏洞存在于PROP-TO-TBL例程中,但未被使用。