Merge pull request #10791 from asgerf/rb/rails-render-file

Ruby: treat render 'file:' argument as a file system access
This commit is contained in:
Asger F
2022-10-12 21:18:32 +02:00
committed by GitHub
2 changed files with 19 additions and 0 deletions

View File

@@ -71,6 +71,21 @@ module Rails {
/** A render call that does not automatically set the HTTP response body. */
class RenderToCall extends MethodCall instanceof RenderToCallImpl { }
/**
* A `render` call seen as a file system access.
*/
private class RenderAsFileSystemAccess extends FileSystemAccess::Range, DataFlow::CallNode {
RenderAsFileSystemAccess() {
exists(MethodCall call | this.asExpr().getExpr() = call |
call instanceof RenderCall
or
call instanceof RenderToCall
)
}
override DataFlow::Node getAPathArgument() { result = this.getKeywordArgument("file") }
}
}
/**

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* The `rb/path-injection` query now treats the `file:` argument of the Rails `render` method as a sink.