Go agent release notes
Release date: November 17, 2021
Language versions currently supported: Go: 1.16, 1.17
New and improved:
Support for the Gin web framework.
Bug fixes:
The
io/fs.Open
function now correctly triggers the path traversal finding. (GO-1072)contrast-go run
now supports running programs that take arguments. (GO-1016)
Release date: October 18, 2021
Language versions currently supported: Go: 1.16, 1.17
Bug fixes:
When calling bufio/bytes methods on interfaces instead of concrete types, the agent won't propagate. (GO-1019)
When custom types are printed to a
http.ResponseWriter
, they aren't analyzed for XSS (False Negative). (GO-1053)
Warning
This release will no longer support GoLang version 1.15.
Release date: September 28, 2021
Language versions currently supported: Go: 1.15, 1.16, 1.17
New and improved:
Golang major language version 1.17 support.
Bug fixes:
When converting from strings to named byte slices or byte slices to named strings, the agent loses data flow. (GO-1005)
Release date: September 22, 2021
Language versions currently supported: Go: 1.15, 1.16
Bug fixes:
When an application nests http.Handlers, the agent reports route observation and responses multiple times. (GO-999)
When triggering dataflow rules, sink events do not correctly set up parent history. (GO-1027)
When reporting route observation, the request pointer changes which breaks assess sources. (GO-1028)
Release date: September 15, 2021
Language versions currently supported: Go: 1.15, 1.16
New and improved:
Allow for custom
go
commands to be passed through ourcontrast-go
executable.
Bug fixes:
When reporting sinks with multiple sources, the agent does not correctly attribute which fields/sources triggered the corresponding finding. (Go-950)
When rewriting a slice operation on a named byte slice type with methods, the build fails. (Go-991)
When appending data, the agent incorrectly detects if the data is tracked, resulting in no finding when reporting to TeamServer. (Go-993)
When dataflow events happen concurrently, the runtime panics and crashes the application. (Go-1023)
Release date: September 1, 2021
Language versions currently supported: Go: 1.15, 1.16
Bug fixes:
When the application starts, the agent spawns ticker routines which continuously leak more tickers. (GO-995)
When sending enhanced class usage, the agent never releases previous reports and spends unnecessary resources on de-duping. (GO-996)
Release date: August 23, 2021
Language versions currently supported: Go: 1.15, 1.16
Bug fixes:
When an application calls a pointer method with a value, the rewritten code copies by value not reference, changing the runtime behavior. (GO-989)
Release date: August 17, 2021
Language versions currently supported: Go: 1.15, 1.16
New and improved:
Improve performance of rewritten code.
Bug fixes:
When propagating through bytes
Buffer/Reader.Read
, no propagation event is shown in the finding trace. (GO-993)When rewriting go function literals with returns, the rewriter omits the returns and breaks builds. (GO-937)
When an error occurs during initialization of the logger, the agent shuts itself off. (GO-952)
When a slice of a tainted byte slice reaches a sink, the sink is not triggered (false negative). (GO-983)
Release date: August 6, 2021
Language versions currently supported: Go: 1.15, 1.16
New and improved:
Enhanced data flow tracking, which improves agent accuracy.
Bug fixes:
When propagating through a circular buffer, the agent caused a stack overflow. (GO-982)
Release date: July 22, 2021
Language versions currently supported: Go: 1.15, 1.16
New and improved:
When an error occurs during agent initialization, more specific/detailed error messages are logged.
Release date: July 8, 2021
Language versions currently supported: Go: 1.15, 1.16
Bug fixes:
When using
getTypeName
, the rewriter failed to safely handle errors and did not inject correct packages. (GO-884)When comparing types, the rewriter incorrectly compared by pointer rather than by type. (GO-885)
Release date: June 17, 2021
Language versions currently supported: Go: 1.15, 1.16
New and improved:
Update the rewriter to only emit on exported functions, reducing the performance overhead of the rewriter itself.
Bug fixes:
When replacing expressions with
callexprs
, the agent may break addressability, resulting in a failed build. (GO-873)When creating caches for rewrite, the reported tool version is not included, resulting in caches that will not be rebuilt despite agent changes. (GO-875)
When rewriting string slices, shadowed type names do not prevent casts from being injected, resulting in code that will not build. (GO-883)
Release date: June 15, 2021
Language versions currently supported: Go: 1.15, 1.16
New and improved:
Updated the rewriter functionality of the agent to rely on Go’s toolexec to allow for the instrumentation of a larger set of Go applications.
Bug fixes:
Release date: June 14, 2021
Language versions currently supported: Go: 1.15, 1.16
New and improved:
Add custom SSRF sink for net/http
Client.PostForm
.
Bug fixes:
Release date: May 28, 2021
Language versions currently supported: Go: 1.15, 1.16
New and improved:
Added the ability to rewrite Go code including compiler directive comments, such as,
//go:embed
,//go:nosplit
and//go:noescape
and others.OSS and Assess feature support for the Go standard library.
Bug fixes:
Update
agent.logger.path
andagent.logger.level
config settings to those from remote settings. (GO-844)