Comments (3)
Could you elaborate a bit what the security risks are?
from premailer-rails.
As a hypothetical worst-case scenario: Let's say I assumed open()
were only able to access local files, which seems perfectly reasonable given the documentation for that built-in method. Then I could, say, take a filename from a user (filtering out beginning dots/slashes/dashes/pipes to avoid changing directory or absolute filenames or commands), to look for a local template and evaluate it, like this:
FileUtils.cd 'templates'
erb = ERB.new(open(user_input))
user_input
could be a URL pointing to an ERB file, and it would then basically have access to do execute any arbitrary code on the machine doing the evaluation, with the same permissions/access as the app itself.
from premailer-rails.
👍
from premailer-rails.
Related Issues (20)
- Allow Rails 6 beta2 HOT 4
- Didnt't work immediately with Rails version 5.0.2 HOT 2
- Encoding changes when premailer is ran HOT 11
- Unable to use the premailer-rails with rails version 3.2.22 HOT 1
- Inlined stylesheet is incorrectly encoded HOT 2
- can't modify frozen String HOT 4
- RTL support HOT 1
- bump premailer version HOT 2
- skip_premailer: false does not work HOT 1
- Allow NetworkLoader to be configured with support for proxied requests HOT 2
- Webpack and Sidekiq not sending emails on non-test environments HOT 1
- Stylesheets not working with email layout on haml HOT 1
- Looking for new maintainers? HOT 12
- Support CSSParser option rule_set_exceptions HOT 2
- Add Propshaft support
- Warning: already initialized constant Net::ProtocRetryError HOT 1
- "no implicit conversion of URI::HTTPS into String" exception after upgrading to 1.12.0 HOT 4
- Instrumentation support HOT 1
- Ruby 3.3.0 error HOT 3
- Generated `html_part` breaking tests after upgrade to 1.11.0
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from premailer-rails.