如何获取 Veracode 漏洞报告的详细信息?

How do I get details of a veracode vulnerability report?

如何获取 Veracode 漏洞报告的详细信息?

我是一个流行的 JS 库的维护者,Ramda, and we've recently received a report that the library is subject to a prototype pollution vulnerability. This has been tracked back to a veracode report 上面写着:

ramda is vulnerable to prototype pollution. An attacker can inject properties into existing construct prototypes via the _curry2 function and modify attributes such as __proto__, constructor, and prototype.

我明白他们在谈论原型污染。 snyk's writeup for lodash.merge 有一个很好的解释。 Ramda 的设计不同,明显类似的 Ramda 代码不受此类漏洞的影响。这并不意味着 Ramda 的任何部分都不受制于它。但该报告没有包含任何细节、没有代码片段,也没有任何方式来质疑他们的发现。

他们描述的细节显然是错误的。 _curry2 不可能遇到这个问题。但由于该函数被用作许多其他函数的包装器,因此可能存在被报告者的误解隐藏的真正漏洞。

有没有办法得到这个错误报告的详细信息?演示问题的代码片段?任何事物?我已经填写了他们的联系表。可能还会有答案,因为它只是 24 小时前,但我没有屏住呼吸——它似乎主要是一种销售形式。我所做的所有搜索都导致了有关如何使用他们的安全工具的信息,但几乎没有关于他们的自定义报告是如何创建的。我在 CVE 数据库中找不到这个。

好的,回答我自己的问题,这里是如何获取 Veracode 的详细信息 在不到 4 周的时间内报告漏洞,仅需 55 个简单的步骤。


准备工作

第 1 天

  • 收到a comment关于用户有问题的问题 收到

    a VULN ticket to fix this Prototype Pollution vulnerability found in ramda.

  • 继续a discussion regarding this comment to learn 有一份报告声称

    ramda is vulnerable to prototype pollution. An attacker can inject properties into existing construct prototypes via the _curry2 function and modify attributes such as __proto__, constructor, and prototype.

    并最终从软件中得知这是由于 a report 保安公司Veracode.

第 2 天和第 3 天

  • 查看该报告发现它没有细节,也没有解释如何 触发漏洞,没有建议的修复。

  • 检查 Veracode 站点的报告和其他部分,发现有 没有 public 质疑此类报告的机制。

第 4 天

  • Report back 到图书馆的问题,报告一定是错误的, 因为 function mentioned 不可能产生行为 描述。

  • Post 一个 actual example 正在讨论的漏洞和一个 parallel snippet 从图书馆证明它没有 分享问题。

  • 查找 Veracode 的在线支持表格,并提交帮助请求。保持 您的期望很低,因为这可能是针对销售部门的。

  • Post一个2求问怎么找 Veracode 漏洞报告的详细信息,使用足够的详细信息,如果 社区有知识,应该很容易回答。

第 5 天和第 6 天

  • 尽量享受你的周五和周六。不要痴迷地检查你的 电子邮件以查看 Veracode 是否已回复。不要访问 Whosebug 每小时提问一次,看看是否有人 post 找到了解决方案。真的, 不要做这些事;他们没有帮助。

第 7 天

  • 为 Whosebug 问题添加 250 声望点赏金,尝试 得到必须处理过的聪明人的额外关注 以前用这个。

第 8 天

  • 在 Veracode 网站上找到直接的电子邮件支持地址,然后发送 电子邮件询问假定的漏洞的详细信息,一个片段 演示问题,以及质疑他们的发现的程序。

第 9 天

  • 收到来自 Veracode 支持电子邮件地址的回复说, 部分,

    Are you saying our vuln db is not correct per your github source? If so, I can send it to our research team to ensure it looks good and if not, to update it.

    As for snips of code, we do not provide that.

  • 回复,说明您发现报告缺少必要的详细信息 挑战它,但是,是的,你期望它是不正确的。

  • 收到回复说这已经“上链”了,你 很快就会收到他们的来信。

第 10 - 11 天

  • 再次重申,不要过分检查您的电子邮件或 Whosebug 问题。 但是如果你碰巧浏览了 Whosebug,请注意 仍然没有答案,有足够的赞成票覆盖一半以上 赏金的成本。显然你不是唯一想知道如何做的人 这样做。

第 12 天

  • 收到来自 Veracode 的电子邮件:

    Thank you for your interest in Application Security and Veracode.

    Do you have time next week to connect?

    Also, to make sure you are aligned with the right rep, where is your company headquartered?

  • 回复您不是潜在客户并再次说明 你在找

  • 在 Whosebug 中添加注释以说明进程在哪里 得到并表达你的沮丧。

第 13 - 14 天

  • 看着又一个周末过去了,却没有任何办法解决这个问题。

  • 参与关于原型的有趣讨论 Whosebug 评论中的污染 post.

第 15 天

  • 从 Veracode 收到一封真正有用的电子邮件,由新人发送, 他的签名说他是销售经理。电子邮件看起来像 这个:

    Hi Scott, I asked my team to help out with your question, here was their response:

    We have based this artifact from the information available in https://github.com/ramda/ramda/pull/3192. In the Pull Request, there is a POC (https://jsfiddle.net/3pomzw5g/2/) clearly demonstrating the prototype pollution vulnerability in the mapObjIndexed function. In the demo, the user object is modified via the __proto__​ property and is
    considered a violation to the Integrity of the CIA triad. This has been reflected in our CVSS scoring for this vulnerability in our vuln db.

    There is also an unmerged fix for the vulnerability which has also been
    included in our artifact (https://github.com/ramda/ramda/pull/3192/commits/774f767a10f37d1f844168cb7e6412ea6660112d )

    Please let me know if there is a dispute against the POC, and we can look further into this.

  • 尽量避免头撞墙时间过长 意识到您认为的问题可能已被某人提出 看到 Veracode 报告的人反而是该报告的 来源

  • 回复这位乐于助人的人,是的,你会为此发生争执, 并询问您是否可以直接联系相关的 Veracode 人,所以不必有中间人。

  • 收到这位乐于助人的人的电子邮件 -- 谁需要名字,让我们打电话 他“Kevin”——收到一封来自 Kevin 的电子邮件,将其添加到电子邮件链中 研究团队。 (我告诉过你他很有帮助!)

  • 回复 Kevin 和团队并简短说明您将花费一些 是时候写下回复并尽快回复他们了。

  • 再看一下Veracode Report,注意描述有 已更改为

    ramda is vulnerable to prototype pollution. An attacker is able to inject and modify attributes of an object through the mapObjIndexed function via the proto property.

    但还要注意,它仍然不包含任何细节、片段、争议 过程。

  • 收到退回电子邮件通知,因为该研究团队的电子邮件 仅供 Veracode 内部使用。

  • 笑,因为唯一的选择就是哭。

  • 告诉凯文发生了什么事,并确保他愿意留下来 中介。他再次提供帮助并会立即同意。

  • 花几个小时写一个详细的回复,解释什么 原型污染以及示例如何不显示这一点 行为。 Post it 提前讨论问题。 (记住 问题?这是一个关于这个问题的故事。3) 问那些正在阅读的人 在发送电子邮件之前征求建议...主要是为了确保 你不是愤怒地发送这个。

  • 无论如何,请立即通过电子邮件发送;如果你说的话太生气 无论如何,您现在可能不想被说服。

  • 请注意,不可退还的 Whosebug 赏金已过期且没有 提供单一答案。

第 16 - 21 天

  • Twiddle your thumbs 一周,但与此同时...

  • 收到一封来自 Veracode 的营销电子邮件,他从未向您发送过 之前。

  • 请注意,Veracode 再次将描述更新为

    ramda allows object prototype manipulation. An attacker is able to inject and modify attributes of an object through the mapObjIndexed function via the proto property. However, due to ramda's design where object immutability is the default, the impact of this vulnerability is limited to the scope of the object instead of the underlying object prototype. Nonetheless, the possibility of object prototype manipulation as demonstrated in the proof-of-concept under References can potentially cause unexpected behaviors in the application. There are currently no known exploits.

    如果不清楚,翻译应该是,“嘿,我们报告了这个, 我们不想退缩,所以我们要说即使 我们注意到的行为实际上并没有发生,那里的行为 仍然是,嗯,错误,有点不对。"

  • 请注意,其雇主拥有 Veracode 帐户的图书馆爱好者 从他们的报告中获得了 able to glean 的更多信息。 事实证明,他们的详细信息仅限于登录用户, 完全不清楚他们应该如何看待这些漏洞 固定。

第 22 天

  • 向凯文发送后续电子邮件4

    I'm wondering if there is any response to this.

    I see that the vulnerability report has been updated but not removed.
    I still dispute the altered version of it. If this behavior is a true vulnerability, could you point me to the equivalent report on JavaScript's Object.assign, which, as demonstrated earlier, has the exact same issue as the function in question.

    My immediate goal is to see this report retracted. But I also want to point out the pain involved in this process, pain that I think Veracode could fix:

    I am not a customer, but your customers are coming to me as Ramda's maintainer to fix a problem you've reported. That report really should have enough information in it to allow me to confirm the vulnerability reported. I've learned that such information is available to a logged- in customer. That doesn't help me or others in my position to find the information. Resorting to email and filtering it through your sales department, is a pretty horrible process. Could you alter your public reports to contain or point to a proof of concept of the vulnerability?
    And could you further offer in the report some hint at a dispute process?

第 23 天

  • 收到一封来自仍然乐于助人的凯文的电子邮件,上面写着

    Thanks for the follow up [ ... ], I will continue to manage the communication with my team, at this time they are looking into the matter and it has been raised up to the highest levels.

    Please reach back out to me if you don’t have a response within 72 hrs.

    Thank you for your patience as we investigate the issue, this is a new process for me as well.

  • 听到他认为你很有耐心的想法,大笑起来。

  • 回应,向凯文道歉他被夹在中间,并阅读 他的善意回复。

第 25 天

  • 从凯文那里得知您的主要 objective 已经满足:

    Hi Scott, I wanted to provide an update, my engineering team got back
    to me with the following:

    “updating our DB to remove the report is the final outcome”

    I have also asked for them to let me know about your question regarding the ability to contend findings and will relay that back once feedback is received.

    Otherwise, I hope this satisfies your request and please let me know if any further action is needed from us at this time.

  • 感激地回应凯文,并指出你仍然想听 关于他们如何改变流程。

  • 回复您自己的电子邮件,为所有拼写错误向凯文道歉 当您尝试在 您的移动设备。

  • Check with 对具有 Veracode 登录功能的 Ramda 用户有帮助 该网站是否似乎已正确更新。

  • 在 Twitter 上的同一个用户在五年内没有回复时联系他 分钟。这并不是说你着急,想把它抛在身后。 真的不是。你不是那种人。

  • 阅读该用户的 detailed response 说明一切正常。

  • 从 Veracode 支持电子邮件地址收到跟进信息,告诉您 那

    After much consideration we have decided to update our db to remove this report.

    他们正在关闭这个问题。

  • 笑他们在看起来很可能之后发送这个事实 本周营业结束(周五晚上 7:00。)

  • 礼貌地回应说你很感激这个结果,但是 您仍然希望看到他们的争议程序现代化。

第 27 天

  • 为你自己的 Stack Overflow 问题写一个 2257 字的答案5 详细解释您解决此问题的过程 问题。

仅此而已。所以下次你运行进入这个,你也可以解决它!




更新

(因为你知道这没那么容易!)

第 61 天

  • 收到一封来自 Veracode 新客户主管的电子邮件,其中说

    Thanks for your interest! Introducing myself as your point of contact at Veracode.

    I'd welcome the chance to answer any questions you may have around Veracode's services and approach to the space.

    Do you have a few minutes free to touch base? Please let me know a convenient time for you and I'll follow up accordingly.

  • 礼貌地回复那封建议与凯文和 在此步骤列表中包含 link。



1 这是 Ramda 问题的标准行为,但它可能 是 Veracode 选择报告此问题的主要原因。

2 注意不要陷入死循环。这个 递归没有基本情况。

3 嘿,这发生在感恩节前后。有过 成为 Alice's Restaurant 参考!

4 如果你还没有找到凯文,现在是个好时机 坚持让 Veracode 为您提供一个。

5 包括脚注。