...
| Code Block | ||
|---|---|---|
| ||
final class BadSer implements Serializable {
File f;
public BadSer() throws FileNotFoundException {
f = new File(""c:\\filepath\\filename"");
}
}
|
Compliant Soluton
This compliant solution shows a final class Ser that does not implement java.io.Serializable. Consequently, the File object cannot be serialized.
| Code Block | ||
|---|---|---|
| ||
final class Ser {
File f;
public BadSer() throws FileNotFoundException {
f = new File(""c:\\filepath\\filename"");
}
}
|
Compliant Solution
This compliant solution declares the File object transient. Consequently, the file path is not exposed.
| Code Block | ||
|---|---|---|
| ||
final class Ser implements Serializable {
transient File f;
public BadSer() throws FileNotFoundException {
f = new File(""c:\\filepath\\filename"");
}
}
|
Risk Assessment
Deserializing direct handles to system resources can allow the modification of the resources being referred to.
...
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
References
| Wiki Markup |
|---|
\[[Sun 06|AA. Java References#Sun 06]\] ""Serialization specification"" |
...
SER37-J. Do not deserialize from a privileged context 14. Serialization (SER) 14. Serialization (SER)