[
https://issues.apache.org/jira/browse/JEXL-381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17626730#comment-17626730
]
Henri Biestro commented on JEXL-381:
------------------------------------
'Permeability' was intended as 'how much' of the host platform (application,
server/service, JVM, OS, file-system) is accessible by JEXL; this is indeed
implemented by permissions so my bad for misnaming the intent, permissibility
is certainly a better word.
I don't understand your proposal in functional terms: how would the usability
level enum be used for and what would it bring? Would it be more than an
homogeneous way of describing the 'default/secure', 'all/unsecure', 'custom'
configurations in our components? Couldn't it be done through a convention,
having a per-component enum at the top-level with the same name for each
component ? ( o.a.c.jexl.Permissibility vs o.a.c.text.Permissibility ?)
When and how to use these/this enum would be very specific anyway per project.
They would be the go-to point to describe the permissively of an instance /
singleton component.
In JEXL's case, this would be implemented through factory/static-getters to
instantiate/retrieve permissions. Still makes JEXL-381 a valid case as is;
could create another JIRA to use this new component enum when it is released.
> Change default JEXL configuration to a more security-friendly behaviour
> ------------------------------------------------------------------------
>
> Key: JEXL-381
> URL: https://issues.apache.org/jira/browse/JEXL-381
> Project: Commons JEXL
> Issue Type: Improvement
> Affects Versions: 3.2.1
> Reporter: Henri Biestro
> Assignee: Henri Biestro
> Priority: Major
> Fix For: 3.3
>
>
> WHAT:
> JEXL's default builder allows accessing and calling any public method, field
> or constructor of any public class. This might not be desirable since a quick
> exploration of JEXL will quickly conclude the library allows arbitrary
> execution through commands (ProcessBuilder) or getting to the file-system
> through URL or File. This improvement goal is to change JEXL's permeability
> as an explicit option and user decision, not a default behaviour.
> HOW:
> By changing the current JexlBuilder to use a restricted set of permissions
> whilst instantiating the Uberspect, we can ensure a minimal useful set of
> classes can be accessed and only those by default. By removing access to
> almost all classes that interact with the JVM host and file-system, we ensure
> a default isolation that would significantly reduce the ability to use JEXL
> as an attack vector.
> CAVEAT:
> This change will likely break many scripts that were dependant upon the
> default permeability.
> [~ggregory], [~dmitri_blinov] your opinions are welcome :-)
> https://lists.apache.org/thread/kgh0kfkcvllp5mj7kwnpdqrbrfcyyopd
--
This message was sent by Atlassian Jira
(v8.20.10#820010)