[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FD] Formstack Webhook HMAC Advisory

Formstack Webhook HMAC Advisory

Formstack is a SaaS company with well over half a million users including major
higher education and healthcare companies. They provide a drag-and-drop form
builder that allows their customers to collect all manner of data.

Formstack's outbound webhook implementation fails to not print the HMAC secret
in every request.

Vendor was given 7 days, multiple emails and a simplified solution to a trivial
problem, but failed to show any urgency or understanding of the implications.


Vendor Response (5, 6, 7 days out respectively):
"Thank you for letting us know about this security issue. Do not worry our
Developers Team has placed this in the queue (high priority) to get fixed.

We do not have an estimate yet, but I know that it is going to be reviewed this
week. We will keep in touch with you ans you’ll be the first one to know once we
have the right information to get this issue fixed."

"Your security is our priority and I have referred this case already to our
Developers Team and they are currently working on this security issue. Rest
assured you’ll hear from us regarding the fix for this issue."

"We thank you for your proactiveness. We will get this fix for sure."


Formstack boasts of its security and HIPAA compliance, and customers can collect
sensitive data including credit card information and personal health information
(PHI). When a form is completed it can be HTTP POSTed to a URL, commonly called
a "webhook". To ensure that data posted into Formstack's clients' systems has
originated from Formstack and is not fabricated by an attacker, they pass along
an HMAC SHA of the body content which is found in an HTTP header.

Their implementation has two flaws:

Firstly, the algorithm is also in the header, and they instruct their clients to
pluck the algorithm from there. This allows attackers to choose less secure

Secondly, they print the HMAC secret in every request body. A single intercepted
request renders the entire exercise pointless, as the attacker now has the
shared secret. This has been observed in production, though you need not look
farther than their documentation for PoC:

This humorous oversight has existed for an unknown amount of time.

Sent through the Full Disclosure mailing list
Web Archives & RSS: http://seclists.org/fulldisclosure/