I don't think MVVM necessarily represents your cross-cutting concerns directly per se. Typically your ViewModel deals with your business logic, aka core concerns. However, you would have your cross-cutting concerns scattered through your different layers (Model, View, ViewModel).
For example, say you have a logging aspect to your application (a cross-cutting concern). This logger would then be injected as a dependency into your ViewModel to maybe log events. Or another example would be your networking functionality represented by an HTTP client is injected into your Model layer so you can make REST API calls. These cross-cutting concerns or dependencies can be scoped to the lifetime of your application since they're used ubiquitously.
It might be helpful for you to use Dagger to create these dependencies with an application scope.
TLDR: MVVM helps with separation of concerns, but you should compose your classes with your cross-cutting concerns/dependencies appropriately with dependency injection.