-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Snyk] Security upgrade pdfmake from 0.2.7 to 0.2.8 #873
base: master
Are you sure you want to change the base?
Conversation
…bilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-CRYPTOJS-6028119
Weak Hashing Algorithm
DescriptionHash Functions are mathematical algorithms that perform a one-way conversion of an arbitrary number of bytes of data into a byte array of a fixed size. The output is called a "hash" or "hash value", and is likened to a fingerprint of the original data. A common example of how this process manifests is displayed in the below example, wherein two distinct words are run through a hashing algorithm (in this case, an algorithm called MD5) producing different hash outputs of the same fixed size:
Hashing algorithms are a critical component for numerous information security applications; they are used to sign digital certificates, create message authentication codes (MACs), hash passwords and other authentication cases. Strong hash functions possess a range of properties:
The above properties remain constant as the foundations of strong hash functions; however, a mixture of exponential computing power, and the perennial research for weaknesses in algorithmic construction, combine to repeatedly deprecate once standard algorithms. Weak hashing algorithms are those that have been proven to be of high risk, or even completely broken, and thus are not fit for use. Additionally, it is important to observe that even strong hashing algorithms may not be suitable to hash passwords, in fact, password hashing algorithms have additional requirements:
Read moreImpactThe impact of successful attacks on weak hashing algorithms can be disastrous, limited only by the value of data, and the imagination of the attacker in leveraging said data. There are countless examples of devastating data breaches exemplifying the fallout from poor hashing algorithm choice. For example, in 2016 (a full two years after the fact) Yahoo! announced they had been the victim of a gargantuan breach, the data of which constituted over 500 million Yahoo! accounts, with account details including; DOBs, unencrypted security questions and answers, and hashed passwords. Had the passwords been hashed by a strong and up to date hashing algorithm, they may have remained worthless data to the attacker. However, the algorithm used was a known weak hashing algorithm - MD5. ScenariosCollisions play a central role in a hashing algorithm's usefulness; the easier it is to orchestrate a collision, the less useful the hash. If an attacker is able to manufacture two distinct inputs that will result in an identical hash value, they are exploiting collision resistance weakness. In 2005, a famous research paper was published describing an algorithm capable of identifying two different sequences of 128 bytes producing the exact same MD5 hash. The below pair of inputs are commonly used to illustrate this phenomenon:
and
An observant reader will note that there are six different characters between the two blocks; however, each block has an MD5 hash of:
PreventionGiven their critical function as a security enabler for numerous online functions, it is imperative for organizations and individuals responsible for implementing functions utilizing hashing algorithms to ensure they are up to speed with the latest iteration. This is, in reality, the only solution to the problem that weak hashing algorithm use represents. Previously standard hashing functions that are nowadays considered very high risk or completely broken include:
Current hash functions deemed robust and accepted as standard include:
When the hash function is used to hash passwords, consider the use of more suitable algorithms, such as:
In any case, make sure to use an appropriate work factor, i.e., a high enough iteration count. TestingVerify that known weak hashing algorithms (i.e. MD5, SHA1, etc.) are not used unless required for backwards compatibility.
ReferencesOWASP - Password Storage Cheat Sheet Wikipedia - Cryptographic Hash Function Digicert - Weak Hashing Algorithm Dalhousie University - MD5 Collission Demo Wikipedia - Secure Hash Algorithms Cryptography Stack Exchange - Understanding the Length Extension Attack |
Snyk has created this PR to fix 1 vulnerabilities in the yarn dependencies of this project.
Snyk changed the following file(s):
components/package.json
components/yarn.lock
Note for zero-installs users
If you are using the Yarn feature zero-installs that was introduced in Yarn V2, note that this PR does not update the
.yarn/cache/
directory meaning this code cannot be pulled and immediately developed on as one would expect for a zero-install project - you will need to runyarn
to update the contents of the./yarn/cache
directory.If you are not using zero-install you can ignore this as your flow should likely be unchanged.
Vulnerabilities that will be fixed with an upgrade:
SNYK-JS-CRYPTOJS-6028119
Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:![](https://camo.githubusercontent.com/7a2c14a02bf492e5ac213003b52cba0ef71f676493de7a011e8cbb49de7e4453/68747470733a2f2f6170692e7365676d656e742e696f2f76312f706978656c2f747261636b3f646174613d65794a33636d6c305a55746c65534936496e4a79576d785a634564485932527954485a7362306c596430645563566734576b4652546e4e434f5545774969776959573576626e6c746233567a535751694f6949344d545a68596d4d32597930344f545a6c4c545134597a67744f4463325a43316a4d5446694e6d4931597a4135597a67694c434a6c646d567564434936496c425349485a705a58646c5a434973496e42796233426c636e52705a584d694f6e736963484a4a5a434936496a67784e6d4669597a5a6a4c5467354e6d55744e44686a4f4330344e7a5a6b4c574d784d574932596a566a4d446c6a4f434a3966513d3d)
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic
Learn how to fix vulnerabilities with free interactive lessons:
🦉 Use of Weak Hash