Description of Vulnerability
One of the features of Mathcad (www.mathsoft.com) is allowing the user to define ‘Areas’. Mathsoft say
that ‘You can use areas to protect, lock, or hide information or equations in your worksheets’ and that
‘You can also protect the contents within the area, so no one else can edit them’.
Whilst this is true, it is also very easy to unlock these Areas without needing the password. In the
newer versions of Mathcad (12 onwards) the sheets are stored in XML format. This provides an easy means
of altering the Mathcad sheet, as it is simply plain text. There are 4 vulnerabilities in the way the
Area locks work:
1. Password - This attribute is stored as a hashed text string. However the hashes produced for
the same word on different sheets are always identical. For example "XfAPUVYgXPg=" represents the
string "password", and could be used in any sheet. So it is possible to create another Mathcad sheet,
lock an Area with a known password and then use a text editor to copy and paste the known password over
the unknown one.
2. Timestamp - Like the password string, this can also be changed to be any value. So the sheet
could be unlocked, modified, relocked and then the date of the relocking could be changed to be the
original lock date.
3. Complete removal of lock - Inside the Area tag there are is an ‘is-locked’ attribute. When a
lock has been enabled this is set to true. However to remove the lock all that needs to be done is
change this value to false. Out of completeness the ‘timestamp’ attribute should be changed to an empty
string and then the ‘password’ attribute removed. Although these last two changes are not needed to
unlock the Area.
4. Protection can be bypassed completely - The data stored in the locked area can also be viewed
in a text editor. So this could also be copied and pasted into another sheet, without the lock
(all prior ones are not vulnerable)
None required, use a text editor.